From 6f0657ac67dde7ecd65216c791e1e37f1668f9b5 Mon Sep 17 00:00:00 2001 From: "Maximilian Blatt (external expert on behalf of DB Netz)" Date: Wed, 18 Oct 2023 07:27:44 +0200 Subject: [PATCH] refactor(pointer): Use generic pointer functions * Add generic functions for late initialize and pointer refs and derefs. * Replace calls that are using the `pointer.FieldRequired` option with ptr.To which as the same effect but is much simpler. * Remove pointer functions that are not used anymore. * Change pointer functions so they don't depend on the AWS sdk anymore but only `k8s.io/utils/ptr`. Signed-off-by: Maximilian Blatt (external expert on behalf of DB Netz) --- CODE_GENERATION.md | 8 +- pkg/clients/acm/certificate.go | 2 +- pkg/clients/acm/certificate_test.go | 50 +- pkg/clients/acmpca/certificateauthority.go | 18 +- .../acmpca/certificateauthority_test.go | 128 ++-- pkg/clients/database/rds.go | 108 +-- pkg/clients/database/rds_test.go | 18 +- pkg/clients/dbsubnetgroup/dbsubnetgroup.go | 2 +- pkg/clients/ec2/address.go | 10 +- pkg/clients/ec2/address_test.go | 22 +- pkg/clients/ec2/instance.go | 14 +- pkg/clients/ec2/internetgateway.go | 2 +- pkg/clients/ec2/internetgateway_test.go | 14 +- pkg/clients/ec2/natgateway_test.go | 38 +- pkg/clients/ec2/routetable.go | 2 +- pkg/clients/ec2/securitygroup.go | 14 +- pkg/clients/ec2/subnet.go | 14 +- pkg/clients/ec2/vpc.go | 10 +- pkg/clients/ec2/vpc_test.go | 6 +- pkg/clients/ecr/repository.go | 4 +- pkg/clients/ecr/repository_policy.go | 2 +- pkg/clients/ecr/repository_policy_test.go | 12 +- pkg/clients/ecr/repository_test.go | 30 +- pkg/clients/eks/eks.go | 18 +- pkg/clients/eks/nodegroup.go | 16 +- pkg/clients/eks/nodegroup_test.go | 16 +- pkg/clients/elasticache/elasticache.go | 62 +- pkg/clients/elasticache/elasticache_test.go | 463 ++++++------ .../elasticache/elasticcachecluster_test.go | 68 +- pkg/clients/elasticloadbalancing/elb/elb.go | 2 +- pkg/clients/hostedzone/hostedzone.go | 10 +- pkg/clients/iam/role.go | 10 +- pkg/clients/iam/role_test.go | 46 +- pkg/clients/iam/user.go | 4 +- pkg/clients/rds/dbinstance.go | 10 +- pkg/clients/redshift/redshift.go | 42 +- .../resolverruleassociation.go | 2 +- .../resourcerecordset/resourcerecordset.go | 8 +- pkg/clients/s3/bucketpolicy_test.go | 12 +- pkg/clients/sns/subscription.go | 10 +- pkg/clients/sns/subscription_test.go | 2 +- pkg/clients/sns/topic.go | 10 +- pkg/clients/sqs/queue.go | 14 +- pkg/controller/apigateway/method/setup.go | 8 +- pkg/controller/apigateway/resource/setup.go | 10 +- pkg/controller/apigateway/restapi/setup.go | 24 +- pkg/controller/athena/workgroup/setup.go | 6 +- .../autoscaling/autoscalinggroup/setup.go | 34 +- .../batch/computeenvironment/setup.go | 20 +- pkg/controller/batch/job/controller.go | 16 +- pkg/controller/batch/job/conversion.go | 16 +- .../batch/jobdefinition/controller.go | 10 +- .../batch/jobdefinition/conversion.go | 30 +- pkg/controller/batch/jobqueue/setup.go | 18 +- .../cache/cachesubnetgroup/controller.go | 12 +- .../cache/replicationgroup/managed.go | 4 +- .../cloudfront/cachepolicy/setup.go | 6 +- .../cloudfrontoriginaccessidentity/setup.go | 10 +- .../cloudfront/distribution/lateinit.go | 194 ++--- .../cloudfront/distribution/lateinit_test.go | 381 +++++----- .../cloudfront/distribution/setup.go | 124 ++-- .../cloudfront/responseheaderspolicy/setup.go | 28 +- pkg/controller/cloudsearch/domain/setup.go | 12 +- .../cloudsearch/domain/setup_test.go | 70 +- .../cloudwatchlogs/loggroup/setup.go | 8 +- .../cognitoidentity/identitypool/setup.go | 6 +- .../cognitoidentityprovider/group/setup.go | 8 +- .../identityprovider/setup.go | 8 +- .../resourceserver/setup.go | 6 +- .../cognitoidentityprovider/userpool/setup.go | 32 +- .../userpoolclient/setup.go | 6 +- .../userpooldomain/setup.go | 6 +- pkg/controller/dax/cluster/setup.go | 16 +- pkg/controller/dax/cluster/setup_test.go | 258 +++---- pkg/controller/dax/parametergroup/setup.go | 12 +- .../dax/parametergroup/setup_test.go | 82 +-- pkg/controller/dax/subnetgroup/setup.go | 12 +- pkg/controller/dax/subnetgroup/setup_test.go | 92 +-- pkg/controller/doc.go | 17 - pkg/controller/docdb/dbcluster/setup.go | 30 +- pkg/controller/docdb/dbcluster/setup_test.go | 598 ++++++++-------- .../docdb/dbclusterparametergroup/setup.go | 8 +- .../dbclusterparametergroup/setup_test.go | 212 +++--- pkg/controller/docdb/dbinstance/setup.go | 18 +- pkg/controller/docdb/dbinstance/setup_test.go | 661 +++++++++--------- pkg/controller/docdb/dbsubnetgroup/setup.go | 8 +- .../docdb/dbsubnetgroup/setup_test.go | 60 +- pkg/controller/docdb/utils/tags.go | 12 +- pkg/controller/dynamodb/table/hooks.go | 24 +- pkg/controller/ec2/flowlog/setup.go | 8 +- pkg/controller/ec2/volume/setup.go | 4 +- pkg/controller/ec2/vpcendpoint/setup.go | 4 +- .../vpcendpointserviceconfiguration/setup.go | 8 +- .../ec2/vpcpeeringconnection/setup.go | 6 +- pkg/controller/ecr/repository/controller.go | 4 +- pkg/controller/efs/accesspoint/setup.go | 4 +- pkg/controller/efs/filesystem/setup.go | 8 +- pkg/controller/efs/mounttarget/setup.go | 2 +- pkg/controller/efs/utils/tags.go | 12 +- pkg/controller/efs/utils/tags_test.go | 2 +- pkg/controller/eks/addon/setup.go | 8 +- pkg/controller/eks/addon/setup_test.go | 8 +- pkg/controller/eks/cluster/cluster.go | 6 +- .../eks/fargateprofile/controller.go | 2 +- pkg/controller/eks/nodegroup/controller.go | 2 +- .../elasticache/cacheparametergroup/setup.go | 10 +- .../cacheparametergroup/setup_test.go | 42 +- pkg/controller/elbv2/target/controller.go | 6 +- .../firehose/deliverystream/setup.go | 7 +- .../globalaccelerator/accelerator/setup.go | 10 +- pkg/controller/glue/classifier/setup.go | 32 +- pkg/controller/glue/connection/setup.go | 14 +- pkg/controller/glue/crawler/setup.go | 32 +- pkg/controller/glue/database/setup.go | 14 +- pkg/controller/glue/job/setup.go | 20 +- .../glue/securityconfiguration/setup.go | 6 +- pkg/controller/iam/accesskey/controller.go | 2 +- pkg/controller/iam/group/controller.go | 2 +- pkg/controller/iam/policy/controller.go | 2 +- pkg/controller/iam/policy/controller_test.go | 8 +- pkg/controller/iam/role/controller_test.go | 2 +- pkg/controller/iam/servicelinkedrole/setup.go | 4 +- pkg/controller/kafka/cluster/setup.go | 24 +- pkg/controller/kafka/configuration/setup.go | 6 +- pkg/controller/kinesis/stream/setup.go | 30 +- pkg/controller/kms/alias/setup.go | 6 +- pkg/controller/kms/key/setup.go | 42 +- pkg/controller/lambda/function/setup.go | 4 +- .../lambda/permission/controller.go | 8 +- .../lambda/permission/conversion.go | 4 +- pkg/controller/mq/broker/setup.go | 14 +- pkg/controller/mq/user/setup.go | 10 +- pkg/controller/mwaa/environment/conversion.go | 4 +- pkg/controller/mwaa/environment/setup.go | 46 +- pkg/controller/neptune/dbcluster/setup.go | 38 +- .../rulegroupsnamespace/setup.go | 2 +- .../prometheusservice/workspace/setup.go | 2 +- pkg/controller/ram/resourceshare/setup.go | 10 +- pkg/controller/rds/dbcluster/setup.go | 30 +- .../rds/dbclusterparametergroup/setup.go | 16 +- pkg/controller/rds/dbinstance/setup.go | 90 +-- pkg/controller/rds/dbparametergroup/setup.go | 16 +- pkg/controller/rds/utils/tags.go | 12 +- .../resolverruleassociation/hooks.go | 2 +- pkg/controller/s3/bucket/CORSConfig.go | 8 +- pkg/controller/s3/bucket/accelerateConfig.go | 10 +- pkg/controller/s3/bucket/lifecycleConfig.go | 10 +- .../s3/bucket/lifecycleConfig_test.go | 8 +- pkg/controller/s3/bucket/loggingConfig.go | 14 +- .../s3/bucket/notificationConfig.go | 20 +- .../s3/bucket/notificationConfig_test.go | 24 +- pkg/controller/s3/bucket/policy.go | 6 +- pkg/controller/s3/bucket/policy_test.go | 12 +- pkg/controller/s3/bucket/publicAccessBlock.go | 16 +- .../s3/bucket/publicAccessBlock_test.go | 22 +- pkg/controller/s3/bucket/replicationConfig.go | 14 +- .../s3/bucket/replicationConfig_test.go | 24 +- .../s3/bucket/requestPaymentConfig.go | 8 +- pkg/controller/s3/bucket/sseConfig.go | 8 +- pkg/controller/s3/bucket/sseConfig_test.go | 8 +- pkg/controller/s3/bucket/taggingConfig.go | 8 +- pkg/controller/s3/bucket/versioningConfig.go | 10 +- .../s3/bucket/versioningConfig_test.go | 2 +- pkg/controller/s3/bucket/websiteConfig.go | 40 +- .../s3/bucketpolicy/bucketpolicy.go | 4 +- .../s3control/accesspoint/controller_test.go | 10 +- pkg/controller/s3control/accesspoint/hooks.go | 6 +- .../s3control/accesspoint/policy.go | 6 +- .../s3control/accesspoint/policy_test.go | 8 +- .../s3control/testing/testHelper.go | 4 +- pkg/controller/secretsmanager/secret/setup.go | 34 +- .../servicediscovery/commonnamespace/hooks.go | 16 +- .../servicediscovery/httpnamespace/setup.go | 6 +- .../privatednsnamespace/setup.go | 6 +- .../publicdnsnamespace/setup.go | 6 +- .../sesv2/configurationset/setup.go | 8 +- pkg/controller/sesv2/emailidentity/setup.go | 8 +- pkg/controller/sesv2/emailtemplate/setup.go | 8 +- pkg/controller/sesv2/utils/tags.go | 12 +- pkg/controller/transfer/server/setup.go | 4 +- pkg/controller/transfer/user/setup.go | 6 +- pkg/utils/connect/aws/config.go | 8 +- pkg/utils/connect/aws/config_test.go | 6 +- pkg/utils/pointer/convert.go | 60 ++ pkg/utils/pointer/late_init.go | 99 +++ pkg/utils/pointer/late_init_test.go | 156 +++++ pkg/utils/pointer/pointer.go | 302 +------- pkg/utils/pointer/pointer_test.go | 117 ---- 188 files changed, 3204 insertions(+), 3271 deletions(-) delete mode 100644 pkg/controller/doc.go create mode 100644 pkg/utils/pointer/convert.go create mode 100644 pkg/utils/pointer/late_init.go create mode 100644 pkg/utils/pointer/late_init_test.go delete mode 100644 pkg/utils/pointer/pointer_test.go diff --git a/CODE_GENERATION.md b/CODE_GENERATION.md index e6e5ec0b1a..a2ebb2bba5 100644 --- a/CODE_GENERATION.md +++ b/CODE_GENERATION.md @@ -284,22 +284,22 @@ func SetupStage(mgr ctrl.Manager, o controller.Options) error { } func preObserve(_ context.Context, cr *svcapitypes.Stage, obj *svcsdk.DescribeStageInput) error { - obj.StageName = pointer.String(meta.GetExternalName(cr)) + obj.StageName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } func preCreate(_ context.Context, cr *svcapitypes.Stage, obj *svcsdk.CreateStageInput) error { - obj.StageName = pointer.String(meta.GetExternalName(cr)) + obj.StageName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } func preUpdate(_ context.Context, cr *svcapitypes.Stage, obj *svcsdk.UpdateStageInput) error { - obj.StageName = pointer.String(meta.GetExternalName(cr)) + obj.StageName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } func preDelete(_ context.Context, cr *svcapitypes.Stage, obj *svcsdk.DeleteStageInput) error { - obj.StageName = pointer.String(meta.GetExternalName(cr)) + obj.StageName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } ``` diff --git a/pkg/clients/acm/certificate.go b/pkg/clients/acm/certificate.go index 54ade97f85..084e0229b4 100644 --- a/pkg/clients/acm/certificate.go +++ b/pkg/clients/acm/certificate.go @@ -100,7 +100,7 @@ func GenerateCertificateStatus(certificate types.CertificateDetail) v1beta1.Cert // LateInitializeCertificate fills the empty fields in *v1beta1.CertificateParameters with // the values seen in iam.Certificate. func LateInitializeCertificate(in *v1beta1.CertificateParameters, certificate *types.CertificateDetail) { - in.CertificateAuthorityARN = pointer.LateInitializeStringPtr(in.CertificateAuthorityARN, certificate.CertificateAuthorityArn) + in.CertificateAuthorityARN = pointer.LateInitialize(in.CertificateAuthorityARN, certificate.CertificateAuthorityArn) if in.Options == nil && certificate.Options != nil { in.Options = &v1beta1.CertificateOptions{ CertificateTransparencyLoggingPreference: string(certificate.Options.CertificateTransparencyLoggingPreference), diff --git a/pkg/clients/acm/certificate_test.go b/pkg/clients/acm/certificate_test.go index b26707ef46..ce8caae076 100644 --- a/pkg/clients/acm/certificate_test.go +++ b/pkg/clients/acm/certificate_test.go @@ -29,7 +29,7 @@ func TestGenerateCreateCertificateInput(t *testing.T) { "FilledInput": { in: v1beta1.CertificateParameters{ DomainName: domainName, - CertificateAuthorityARN: pointer.String(certificateAuthorityArn), + CertificateAuthorityARN: pointer.ToOrNilIfZeroValue(certificateAuthorityArn), Options: &v1beta1.CertificateOptions{ CertificateTransparencyLoggingPreference: certificateTransparencyLoggingPreference, }, @@ -40,13 +40,13 @@ func TestGenerateCreateCertificateInput(t *testing.T) { }}, }, out: acm.RequestCertificateInput{ - DomainName: pointer.String(domainName), - CertificateAuthorityArn: pointer.String(certificateAuthorityArn), + DomainName: pointer.ToOrNilIfZeroValue(domainName), + CertificateAuthorityArn: pointer.ToOrNilIfZeroValue(certificateAuthorityArn), Options: &acmtypes.CertificateOptions{CertificateTransparencyLoggingPreference: acmtypes.CertificateTransparencyLoggingPreferenceDisabled}, ValidationMethod: acmtypes.ValidationMethodDns, Tags: []acmtypes.Tag{{ - Key: pointer.String("key1"), - Value: pointer.String("value1"), + Key: pointer.ToOrNilIfZeroValue("key1"), + Value: pointer.ToOrNilIfZeroValue("value1"), }}, }, }, @@ -77,20 +77,20 @@ func TestLateInitializeCertificate(t *testing.T) { args: args{ spec: &v1beta1.CertificateParameters{ DomainName: domainName, - CertificateAuthorityARN: pointer.String(certificateAuthorityArn), + CertificateAuthorityARN: pointer.ToOrNilIfZeroValue(certificateAuthorityArn), Options: &v1beta1.CertificateOptions{ CertificateTransparencyLoggingPreference: certificateTransparencyLoggingPreference, }, }, in: &acmtypes.CertificateDetail{ - DomainName: pointer.String(domainName), - CertificateAuthorityArn: pointer.String(certificateAuthorityArn), + DomainName: pointer.ToOrNilIfZeroValue(domainName), + CertificateAuthorityArn: pointer.ToOrNilIfZeroValue(certificateAuthorityArn), Options: &acmtypes.CertificateOptions{CertificateTransparencyLoggingPreference: acmtypes.CertificateTransparencyLoggingPreferenceDisabled}, }, }, want: &v1beta1.CertificateParameters{ DomainName: domainName, - CertificateAuthorityARN: pointer.String(certificateAuthorityArn), + CertificateAuthorityARN: pointer.ToOrNilIfZeroValue(certificateAuthorityArn), Options: &v1beta1.CertificateOptions{ CertificateTransparencyLoggingPreference: certificateTransparencyLoggingPreference, }, @@ -100,20 +100,20 @@ func TestLateInitializeCertificate(t *testing.T) { args: args{ spec: &v1beta1.CertificateParameters{ DomainName: domainName, - CertificateAuthorityARN: pointer.String(certificateAuthorityArn), + CertificateAuthorityARN: pointer.ToOrNilIfZeroValue(certificateAuthorityArn), Options: &v1beta1.CertificateOptions{ CertificateTransparencyLoggingPreference: certificateTransparencyLoggingPreference, }, }, in: &acmtypes.CertificateDetail{ - DomainName: pointer.String(domainName), - CertificateAuthorityArn: pointer.String(certificateAuthorityArn), + DomainName: pointer.ToOrNilIfZeroValue(domainName), + CertificateAuthorityArn: pointer.ToOrNilIfZeroValue(certificateAuthorityArn), Options: &acmtypes.CertificateOptions{CertificateTransparencyLoggingPreference: acmtypes.CertificateTransparencyLoggingPreferenceDisabled}, }, }, want: &v1beta1.CertificateParameters{ DomainName: domainName, - CertificateAuthorityARN: pointer.String(certificateAuthorityArn), + CertificateAuthorityARN: pointer.ToOrNilIfZeroValue(certificateAuthorityArn), Options: &v1beta1.CertificateOptions{ CertificateTransparencyLoggingPreference: certificateTransparencyLoggingPreference, }, @@ -123,17 +123,17 @@ func TestLateInitializeCertificate(t *testing.T) { args: args{ spec: &v1beta1.CertificateParameters{ DomainName: domainName, - CertificateAuthorityARN: pointer.String(certificateAuthorityArn), + CertificateAuthorityARN: pointer.ToOrNilIfZeroValue(certificateAuthorityArn), }, in: &acmtypes.CertificateDetail{ - DomainName: pointer.String(domainName), - CertificateAuthorityArn: pointer.String(certificateAuthorityArn), + DomainName: pointer.ToOrNilIfZeroValue(domainName), + CertificateAuthorityArn: pointer.ToOrNilIfZeroValue(certificateAuthorityArn), Options: &acmtypes.CertificateOptions{CertificateTransparencyLoggingPreference: acmtypes.CertificateTransparencyLoggingPreferenceDisabled}, }, }, want: &v1beta1.CertificateParameters{ DomainName: domainName, - CertificateAuthorityARN: pointer.String(certificateAuthorityArn), + CertificateAuthorityARN: pointer.ToOrNilIfZeroValue(certificateAuthorityArn), Options: &v1beta1.CertificateOptions{ CertificateTransparencyLoggingPreference: certificateTransparencyLoggingPreference, }, @@ -162,7 +162,7 @@ func TestGenerateCertificateStatus(t *testing.T) { }{ "AllFilled": { in: acmtypes.CertificateDetail{ - CertificateArn: pointer.String(certificateArn), + CertificateArn: pointer.ToOrNilIfZeroValue(certificateArn), RenewalEligibility: acmtypes.RenewalEligibilityEligible, }, out: v1beta1.CertificateExternalStatus{ @@ -182,7 +182,7 @@ func TestGenerateCertificateStatus(t *testing.T) { }, "DomainValidationOptionsResourceRecord": { in: acmtypes.CertificateDetail{ - CertificateArn: pointer.String(certificateArn), + CertificateArn: pointer.ToOrNilIfZeroValue(certificateArn), RenewalEligibility: acmtypes.RenewalEligibilityIneligible, Type: acmtypes.CertificateTypeAmazonIssued, Status: acmtypes.CertificateStatusPendingValidation, @@ -248,8 +248,8 @@ func TestIsCertificateUpToDate(t *testing.T) { }}, }, tags: []acmtypes.Tag{{ - Key: pointer.String("key1"), - Value: pointer.String("value1"), + Key: pointer.ToOrNilIfZeroValue("key1"), + Value: pointer.ToOrNilIfZeroValue("value1"), }}, }, want: true, @@ -269,8 +269,8 @@ func TestIsCertificateUpToDate(t *testing.T) { }}, }, tags: []acmtypes.Tag{{ - Key: pointer.String("key1"), - Value: pointer.String("value1"), + Key: pointer.ToOrNilIfZeroValue("key1"), + Value: pointer.ToOrNilIfZeroValue("value1"), }}, }, want: false, @@ -290,8 +290,8 @@ func TestIsCertificateUpToDate(t *testing.T) { }}, }, tags: []acmtypes.Tag{{ - Key: pointer.String("key2"), - Value: pointer.String("value2"), + Key: pointer.ToOrNilIfZeroValue("key2"), + Value: pointer.ToOrNilIfZeroValue("value2"), }}, }, want: false, diff --git a/pkg/clients/acmpca/certificateauthority.go b/pkg/clients/acmpca/certificateauthority.go index 0158b1d06d..016a8995f2 100644 --- a/pkg/clients/acmpca/certificateauthority.go +++ b/pkg/clients/acmpca/certificateauthority.go @@ -56,8 +56,8 @@ func GenerateCreateCertificateAuthorityInput(p *v1beta1.CertificateAuthorityPara m.Tags = make([]types.Tag, len(p.Tags)) for i, val := range p.Tags { m.Tags[i] = types.Tag{ - Key: pointer.String(val.Key), - Value: pointer.String(val.Value), + Key: pointer.ToOrNilIfZeroValue(val.Key), + Value: pointer.ToOrNilIfZeroValue(val.Value), } } @@ -69,18 +69,18 @@ func GenerateCertificateAuthorityConfiguration(p v1beta1.CertificateAuthorityCon m := &types.CertificateAuthorityConfiguration{ Subject: &types.ASN1Subject{ - CommonName: pointer.String(p.Subject.CommonName), - Country: pointer.String(p.Subject.Country), + CommonName: pointer.ToOrNilIfZeroValue(p.Subject.CommonName), + Country: pointer.ToOrNilIfZeroValue(p.Subject.Country), DistinguishedNameQualifier: p.Subject.DistinguishedNameQualifier, GenerationQualifier: p.Subject.GenerationQualifier, GivenName: p.Subject.GivenName, Initials: p.Subject.Initials, - Locality: pointer.String(p.Subject.Locality), - Organization: pointer.String(p.Subject.Organization), - OrganizationalUnit: pointer.String(p.Subject.OrganizationalUnit), + Locality: pointer.ToOrNilIfZeroValue(p.Subject.Locality), + Organization: pointer.ToOrNilIfZeroValue(p.Subject.Organization), + OrganizationalUnit: pointer.ToOrNilIfZeroValue(p.Subject.OrganizationalUnit), Pseudonym: p.Subject.Pseudonym, SerialNumber: p.Subject.SerialNumber, - State: pointer.String(p.Subject.State), + State: pointer.ToOrNilIfZeroValue(p.Subject.State), Surname: p.Subject.Surname, Title: p.Subject.Title, }, @@ -124,7 +124,7 @@ func LateInitializeCertificateAuthority(in *v1beta1.CertificateAuthorityParamete // so these are the only variants we support in spec. The current status // in the status.atProvider. if aws.ToString(in.Status) == "" && (certificateAuthority.Status == types.CertificateAuthorityStatusActive || certificateAuthority.Status == types.CertificateAuthorityStatusDisabled) { - in.Status = pointer.String(string(certificateAuthority.Status)) + in.Status = pointer.ToOrNilIfZeroValue(string(certificateAuthority.Status)) } if certificateAuthority.RevocationConfiguration.CrlConfiguration.Enabled { diff --git a/pkg/clients/acmpca/certificateauthority_test.go b/pkg/clients/acmpca/certificateauthority_test.go index 56867e3935..b00d5ad64d 100644 --- a/pkg/clients/acmpca/certificateauthority_test.go +++ b/pkg/clients/acmpca/certificateauthority_test.go @@ -63,18 +63,18 @@ func TestGenerateCreateCertificateAuthorityInput(t *testing.T) { Subject: v1beta1.Subject{ CommonName: commonName, Country: country, - DistinguishedNameQualifier: pointer.String(distinguishedNameQualifier), - GenerationQualifier: pointer.String(generationQualifier), - GivenName: pointer.String(givenName), - Initials: pointer.String(initials), + DistinguishedNameQualifier: pointer.ToOrNilIfZeroValue(distinguishedNameQualifier), + GenerationQualifier: pointer.ToOrNilIfZeroValue(generationQualifier), + GivenName: pointer.ToOrNilIfZeroValue(givenName), + Initials: pointer.ToOrNilIfZeroValue(initials), Locality: locality, Organization: organization, OrganizationalUnit: organizationalUnit, - Pseudonym: pointer.String(pseudonym), - SerialNumber: pointer.String(serialNumber), + Pseudonym: pointer.ToOrNilIfZeroValue(pseudonym), + SerialNumber: pointer.ToOrNilIfZeroValue(serialNumber), State: state, - Surname: pointer.String(surname), - Title: pointer.String(title), + Surname: pointer.ToOrNilIfZeroValue(surname), + Title: pointer.ToOrNilIfZeroValue(title), }, }, Tags: []v1beta1.Tag{{ @@ -87,26 +87,26 @@ func TestGenerateCreateCertificateAuthorityInput(t *testing.T) { SigningAlgorithm: types.SigningAlgorithmSha256withecdsa, KeyAlgorithm: types.KeyAlgorithmRsa2048, Subject: &types.ASN1Subject{ - CommonName: pointer.String(commonName), - Country: pointer.String(country), - DistinguishedNameQualifier: pointer.String(distinguishedNameQualifier), - GenerationQualifier: pointer.String(generationQualifier), - GivenName: pointer.String(givenName), - Initials: pointer.String(initials), - Locality: pointer.String(locality), - Organization: pointer.String(organization), - OrganizationalUnit: pointer.String(organizationalUnit), - Pseudonym: pointer.String(pseudonym), - SerialNumber: pointer.String(serialNumber), - State: pointer.String(state), - Surname: pointer.String(surname), - Title: pointer.String(title), + CommonName: pointer.ToOrNilIfZeroValue(commonName), + Country: pointer.ToOrNilIfZeroValue(country), + DistinguishedNameQualifier: pointer.ToOrNilIfZeroValue(distinguishedNameQualifier), + GenerationQualifier: pointer.ToOrNilIfZeroValue(generationQualifier), + GivenName: pointer.ToOrNilIfZeroValue(givenName), + Initials: pointer.ToOrNilIfZeroValue(initials), + Locality: pointer.ToOrNilIfZeroValue(locality), + Organization: pointer.ToOrNilIfZeroValue(organization), + OrganizationalUnit: pointer.ToOrNilIfZeroValue(organizationalUnit), + Pseudonym: pointer.ToOrNilIfZeroValue(pseudonym), + SerialNumber: pointer.ToOrNilIfZeroValue(serialNumber), + State: pointer.ToOrNilIfZeroValue(state), + Surname: pointer.ToOrNilIfZeroValue(surname), + Title: pointer.ToOrNilIfZeroValue(title), }, }, CertificateAuthorityType: types.CertificateAuthorityTypeRoot, Tags: []types.Tag{{ - Key: pointer.String("key1"), - Value: pointer.String("value1"), + Key: pointer.ToOrNilIfZeroValue("key1"), + Value: pointer.ToOrNilIfZeroValue("value1"), }}, }, }, @@ -134,38 +134,38 @@ func TestGenerateCertificateAuthorityConfiguration(t *testing.T) { Subject: v1beta1.Subject{ CommonName: commonName, Country: country, - DistinguishedNameQualifier: pointer.String(distinguishedNameQualifier), - GenerationQualifier: pointer.String(generationQualifier), - GivenName: pointer.String(givenName), - Initials: pointer.String(initials), + DistinguishedNameQualifier: pointer.ToOrNilIfZeroValue(distinguishedNameQualifier), + GenerationQualifier: pointer.ToOrNilIfZeroValue(generationQualifier), + GivenName: pointer.ToOrNilIfZeroValue(givenName), + Initials: pointer.ToOrNilIfZeroValue(initials), Locality: locality, Organization: organization, OrganizationalUnit: organizationalUnit, - Pseudonym: pointer.String(pseudonym), - SerialNumber: pointer.String(serialNumber), + Pseudonym: pointer.ToOrNilIfZeroValue(pseudonym), + SerialNumber: pointer.ToOrNilIfZeroValue(serialNumber), State: state, - Surname: pointer.String(surname), - Title: pointer.String(title), + Surname: pointer.ToOrNilIfZeroValue(surname), + Title: pointer.ToOrNilIfZeroValue(title), }, }, out: &types.CertificateAuthorityConfiguration{ SigningAlgorithm: types.SigningAlgorithmSha256withecdsa, KeyAlgorithm: types.KeyAlgorithmRsa2048, Subject: &types.ASN1Subject{ - CommonName: pointer.String(commonName), - Country: pointer.String(country), - DistinguishedNameQualifier: pointer.String(distinguishedNameQualifier), - GenerationQualifier: pointer.String(generationQualifier), - GivenName: pointer.String(givenName), - Initials: pointer.String(initials), - Locality: pointer.String(locality), - Organization: pointer.String(organization), - OrganizationalUnit: pointer.String(organizationalUnit), - Pseudonym: pointer.String(pseudonym), - SerialNumber: pointer.String(serialNumber), - State: pointer.String(state), - Surname: pointer.String(surname), - Title: pointer.String(title), + CommonName: pointer.ToOrNilIfZeroValue(commonName), + Country: pointer.ToOrNilIfZeroValue(country), + DistinguishedNameQualifier: pointer.ToOrNilIfZeroValue(distinguishedNameQualifier), + GenerationQualifier: pointer.ToOrNilIfZeroValue(generationQualifier), + GivenName: pointer.ToOrNilIfZeroValue(givenName), + Initials: pointer.ToOrNilIfZeroValue(initials), + Locality: pointer.ToOrNilIfZeroValue(locality), + Organization: pointer.ToOrNilIfZeroValue(organization), + OrganizationalUnit: pointer.ToOrNilIfZeroValue(organizationalUnit), + Pseudonym: pointer.ToOrNilIfZeroValue(pseudonym), + SerialNumber: pointer.ToOrNilIfZeroValue(serialNumber), + State: pointer.ToOrNilIfZeroValue(state), + Surname: pointer.ToOrNilIfZeroValue(surname), + Title: pointer.ToOrNilIfZeroValue(title), }, }, }, @@ -188,15 +188,15 @@ func TestGenerateRevocationConfiguration(t *testing.T) { }{ "Filled_Input": { in: &v1beta1.RevocationConfiguration{ - CustomCname: pointer.String(customCname), + CustomCname: pointer.ToOrNilIfZeroValue(customCname), Enabled: revocationConfigurationEnabled, - S3BucketName: pointer.String(s3BucketName), + S3BucketName: pointer.ToOrNilIfZeroValue(s3BucketName), }, out: &types.RevocationConfiguration{ CrlConfiguration: &types.CrlConfiguration{ - CustomCname: pointer.String(customCname), + CustomCname: pointer.ToOrNilIfZeroValue(customCname), Enabled: revocationConfigurationEnabled, - S3BucketName: pointer.String(s3BucketName), + S3BucketName: pointer.ToOrNilIfZeroValue(s3BucketName), }, }, }, @@ -234,7 +234,7 @@ func TestLateInitializeCertificateAuthority(t *testing.T) { Status: types.CertificateAuthorityStatus(status), CertificateAuthorityConfiguration: &types.CertificateAuthorityConfiguration{ Subject: &types.ASN1Subject{ - SerialNumber: pointer.String(serialNumber), + SerialNumber: pointer.ToOrNilIfZeroValue(serialNumber), }, }, RevocationConfiguration: &types.RevocationConfiguration{ @@ -249,7 +249,7 @@ func TestLateInitializeCertificateAuthority(t *testing.T) { Status: &status, CertificateAuthorityConfiguration: v1beta1.CertificateAuthorityConfiguration{ Subject: v1beta1.Subject{ - SerialNumber: pointer.String(serialNumber), + SerialNumber: pointer.ToOrNilIfZeroValue(serialNumber), }, }, }, @@ -283,8 +283,8 @@ func TestIsCertificateAuthorityUpToDate(t *testing.T) { cd: types.CertificateAuthority{ RevocationConfiguration: &types.RevocationConfiguration{ CrlConfiguration: &types.CrlConfiguration{ - CustomCname: pointer.String(customCname), - S3BucketName: pointer.String(s3BucketName), + CustomCname: pointer.ToOrNilIfZeroValue(customCname), + S3BucketName: pointer.ToOrNilIfZeroValue(s3BucketName), Enabled: true, }, }, @@ -294,8 +294,8 @@ func TestIsCertificateAuthorityUpToDate(t *testing.T) { Spec: v1beta1.CertificateAuthoritySpec{ ForProvider: v1beta1.CertificateAuthorityParameters{ RevocationConfiguration: &v1beta1.RevocationConfiguration{ - CustomCname: pointer.String(customCname), - S3BucketName: pointer.String(s3BucketName), + CustomCname: pointer.ToOrNilIfZeroValue(customCname), + S3BucketName: pointer.ToOrNilIfZeroValue(s3BucketName), Enabled: true, }, Tags: []v1beta1.Tag{{ @@ -307,8 +307,8 @@ func TestIsCertificateAuthorityUpToDate(t *testing.T) { }, }, tags: []types.Tag{{ - Key: pointer.String("key1"), - Value: pointer.String("value1"), + Key: pointer.ToOrNilIfZeroValue("key1"), + Value: pointer.ToOrNilIfZeroValue("value1"), }}, }, want: true, @@ -318,8 +318,8 @@ func TestIsCertificateAuthorityUpToDate(t *testing.T) { cd: types.CertificateAuthority{ RevocationConfiguration: &types.RevocationConfiguration{ CrlConfiguration: &types.CrlConfiguration{ - CustomCname: pointer.String(customCname), - S3BucketName: pointer.String(s3BucketName), + CustomCname: pointer.ToOrNilIfZeroValue(customCname), + S3BucketName: pointer.ToOrNilIfZeroValue(s3BucketName), }, }, }, @@ -327,15 +327,15 @@ func TestIsCertificateAuthorityUpToDate(t *testing.T) { Spec: v1beta1.CertificateAuthoritySpec{ ForProvider: v1beta1.CertificateAuthorityParameters{ RevocationConfiguration: &v1beta1.RevocationConfiguration{ - CustomCname: pointer.String(customCname), - S3BucketName: pointer.String(s3BucketName), + CustomCname: pointer.ToOrNilIfZeroValue(customCname), + S3BucketName: pointer.ToOrNilIfZeroValue(s3BucketName), }, }, }, }, tags: []types.Tag{{ - Key: pointer.String("key1"), - Value: pointer.String("value1"), + Key: pointer.ToOrNilIfZeroValue("key1"), + Value: pointer.ToOrNilIfZeroValue("value1"), }}, }, want: false, diff --git a/pkg/clients/database/rds.go b/pkg/clients/database/rds.go index e59564215f..cc139e9f9a 100644 --- a/pkg/clients/database/rds.go +++ b/pkg/clients/database/rds.go @@ -78,10 +78,10 @@ func GenerateCreateRDSInstanceInput(name, password string, p *v1beta1.RDSInstanc // Make sure any relevant changes are applied there too. c := &rds.CreateDBInstanceInput{ DBInstanceIdentifier: aws.String(name), - AllocatedStorage: pointer.Int32Address(p.AllocatedStorage), + AllocatedStorage: pointer.ToIntAsInt32Ptr(p.AllocatedStorage), AutoMinorVersionUpgrade: p.AutoMinorVersionUpgrade, AvailabilityZone: p.AvailabilityZone, - BackupRetentionPeriod: pointer.Int32Address(p.BackupRetentionPeriod), + BackupRetentionPeriod: pointer.ToIntAsInt32Ptr(p.BackupRetentionPeriod), CACertificateIdentifier: p.CACertificateIdentifier, CharacterSetName: p.CharacterSetName, CopyTagsToSnapshot: p.CopyTagsToSnapshot, @@ -99,22 +99,22 @@ func GenerateCreateRDSInstanceInput(name, password string, p *v1beta1.RDSInstanc EnablePerformanceInsights: p.EnablePerformanceInsights, Engine: aws.String(p.Engine), EngineVersion: p.EngineVersion, - Iops: pointer.Int32Address(p.IOPS), + Iops: pointer.ToIntAsInt32Ptr(p.IOPS), KmsKeyId: p.KMSKeyID, LicenseModel: p.LicenseModel, - MasterUserPassword: pointer.String(password), + MasterUserPassword: pointer.ToOrNilIfZeroValue(password), MasterUsername: p.MasterUsername, - MaxAllocatedStorage: pointer.Int32Address(p.MaxAllocatedStorage), - MonitoringInterval: pointer.Int32Address(p.MonitoringInterval), + MaxAllocatedStorage: pointer.ToIntAsInt32Ptr(p.MaxAllocatedStorage), + MonitoringInterval: pointer.ToIntAsInt32Ptr(p.MonitoringInterval), MonitoringRoleArn: p.MonitoringRoleARN, MultiAZ: p.MultiAZ, OptionGroupName: p.OptionGroupName, PerformanceInsightsKMSKeyId: p.PerformanceInsightsKMSKeyID, - PerformanceInsightsRetentionPeriod: pointer.Int32Address(p.PerformanceInsightsRetentionPeriod), - Port: pointer.Int32Address(p.Port), + PerformanceInsightsRetentionPeriod: pointer.ToIntAsInt32Ptr(p.PerformanceInsightsRetentionPeriod), + Port: pointer.ToIntAsInt32Ptr(p.Port), PreferredBackupWindow: p.PreferredBackupWindow, PreferredMaintenanceWindow: p.PreferredMaintenanceWindow, - PromotionTier: pointer.Int32Address(p.PromotionTier), + PromotionTier: pointer.ToIntAsInt32Ptr(p.PromotionTier), PubliclyAccessible: p.PubliclyAccessible, StorageEncrypted: p.StorageEncrypted, Timezone: p.Timezone, @@ -147,10 +147,10 @@ func GenerateRestoreRDSInstanceFromS3Input(name, password string, p *v1beta1.RDS // Partially duplicates GenerateCreateDBInstanceInput - make sure any relevant changes are applied there too. c := &rds.RestoreDBInstanceFromS3Input{ DBInstanceIdentifier: aws.String(name), - AllocatedStorage: pointer.Int32Address(p.AllocatedStorage), + AllocatedStorage: pointer.ToIntAsInt32Ptr(p.AllocatedStorage), AutoMinorVersionUpgrade: p.AutoMinorVersionUpgrade, AvailabilityZone: p.AvailabilityZone, - BackupRetentionPeriod: pointer.Int32Address(p.BackupRetentionPeriod), + BackupRetentionPeriod: pointer.ToIntAsInt32Ptr(p.BackupRetentionPeriod), CopyTagsToSnapshot: p.CopyTagsToSnapshot, DBInstanceClass: aws.String(p.DBInstanceClass), DBName: p.DBName, @@ -163,18 +163,18 @@ func GenerateRestoreRDSInstanceFromS3Input(name, password string, p *v1beta1.RDS EnablePerformanceInsights: p.EnablePerformanceInsights, Engine: aws.String(p.Engine), EngineVersion: p.EngineVersion, - Iops: pointer.Int32Address(p.IOPS), + Iops: pointer.ToIntAsInt32Ptr(p.IOPS), KmsKeyId: p.KMSKeyID, LicenseModel: p.LicenseModel, - MasterUserPassword: pointer.String(password), + MasterUserPassword: pointer.ToOrNilIfZeroValue(password), MasterUsername: p.MasterUsername, - MonitoringInterval: pointer.Int32Address(p.MonitoringInterval), + MonitoringInterval: pointer.ToIntAsInt32Ptr(p.MonitoringInterval), MonitoringRoleArn: p.MonitoringRoleARN, MultiAZ: p.MultiAZ, OptionGroupName: p.OptionGroupName, PerformanceInsightsKMSKeyId: p.PerformanceInsightsKMSKeyID, - PerformanceInsightsRetentionPeriod: pointer.Int32Address(p.PerformanceInsightsRetentionPeriod), - Port: pointer.Int32Address(p.Port), + PerformanceInsightsRetentionPeriod: pointer.ToIntAsInt32Ptr(p.PerformanceInsightsRetentionPeriod), + Port: pointer.ToIntAsInt32Ptr(p.Port), PreferredBackupWindow: p.PreferredBackupWindow, PreferredMaintenanceWindow: p.PreferredMaintenanceWindow, PubliclyAccessible: p.PubliclyAccessible, @@ -227,11 +227,11 @@ func GenerateRestoreRDSInstanceFromSnapshotInput(name string, p *v1beta1.RDSInst EnableCloudwatchLogsExports: p.EnableCloudwatchLogsExports, EnableIAMDatabaseAuthentication: p.EnableIAMDatabaseAuthentication, Engine: aws.String(p.Engine), - Iops: pointer.Int32Address(p.IOPS), + Iops: pointer.ToIntAsInt32Ptr(p.IOPS), LicenseModel: p.LicenseModel, MultiAZ: p.MultiAZ, OptionGroupName: p.OptionGroupName, - Port: pointer.Int32Address(p.Port), + Port: pointer.ToIntAsInt32Ptr(p.Port), PubliclyAccessible: p.PubliclyAccessible, StorageType: p.StorageType, VpcSecurityGroupIds: p.VPCSecurityGroupIDs, @@ -280,11 +280,11 @@ func GenerateRestoreRDSInstanceToPointInTimeInput(name string, p *v1beta1.RDSIns EnableCloudwatchLogsExports: p.EnableCloudwatchLogsExports, EnableIAMDatabaseAuthentication: p.EnableIAMDatabaseAuthentication, Engine: aws.String(p.Engine), - Iops: pointer.Int32Address(p.IOPS), + Iops: pointer.ToIntAsInt32Ptr(p.IOPS), LicenseModel: p.LicenseModel, MultiAZ: p.MultiAZ, OptionGroupName: p.OptionGroupName, - Port: pointer.Int32Address(p.Port), + Port: pointer.ToIntAsInt32Ptr(p.Port), PubliclyAccessible: p.PubliclyAccessible, StorageType: p.StorageType, VpcSecurityGroupIds: p.VPCSecurityGroupIDs, @@ -394,16 +394,16 @@ func GenerateModifyDBInstanceInput(name string, p *v1beta1.RDSInstanceParameters // it. m := &rds.ModifyDBInstanceInput{ DBInstanceIdentifier: aws.String(name), - AllocatedStorage: pointer.Int32Address(p.AllocatedStorage), + AllocatedStorage: pointer.ToIntAsInt32Ptr(p.AllocatedStorage), AllowMajorVersionUpgrade: aws.ToBool(p.AllowMajorVersionUpgrade), ApplyImmediately: aws.ToBool(p.ApplyModificationsImmediately), AutoMinorVersionUpgrade: p.AutoMinorVersionUpgrade, - BackupRetentionPeriod: pointer.Int32Address(p.BackupRetentionPeriod), + BackupRetentionPeriod: pointer.ToIntAsInt32Ptr(p.BackupRetentionPeriod), CACertificateIdentifier: p.CACertificateIdentifier, CopyTagsToSnapshot: p.CopyTagsToSnapshot, - DBInstanceClass: pointer.String(p.DBInstanceClass), + DBInstanceClass: pointer.ToOrNilIfZeroValue(p.DBInstanceClass), DBParameterGroupName: p.DBParameterGroupName, - DBPortNumber: pointer.Int32Address(p.Port), + DBPortNumber: pointer.ToIntAsInt32Ptr(p.Port), DBSecurityGroups: p.DBSecurityGroups, DBSubnetGroupName: p.DBSubnetGroupName, DeletionProtection: p.DeletionProtection, @@ -412,18 +412,18 @@ func GenerateModifyDBInstanceInput(name string, p *v1beta1.RDSInstanceParameters EnableIAMDatabaseAuthentication: p.EnableIAMDatabaseAuthentication, EnablePerformanceInsights: p.EnablePerformanceInsights, EngineVersion: p.EngineVersion, - Iops: pointer.Int32Address(p.IOPS), + Iops: pointer.ToIntAsInt32Ptr(p.IOPS), LicenseModel: p.LicenseModel, - MaxAllocatedStorage: pointer.Int32Address(p.MaxAllocatedStorage), - MonitoringInterval: pointer.Int32Address(p.MonitoringInterval), + MaxAllocatedStorage: pointer.ToIntAsInt32Ptr(p.MaxAllocatedStorage), + MonitoringInterval: pointer.ToIntAsInt32Ptr(p.MonitoringInterval), MonitoringRoleArn: p.MonitoringRoleARN, MultiAZ: p.MultiAZ, OptionGroupName: p.OptionGroupName, PerformanceInsightsKMSKeyId: p.PerformanceInsightsKMSKeyID, - PerformanceInsightsRetentionPeriod: pointer.Int32Address(p.PerformanceInsightsRetentionPeriod), + PerformanceInsightsRetentionPeriod: pointer.ToIntAsInt32Ptr(p.PerformanceInsightsRetentionPeriod), PreferredBackupWindow: p.PreferredBackupWindow, PreferredMaintenanceWindow: p.PreferredMaintenanceWindow, - PromotionTier: pointer.Int32Address(p.PromotionTier), + PromotionTier: pointer.ToIntAsInt32Ptr(p.PromotionTier), PubliclyAccessible: p.PubliclyAccessible, StorageType: p.StorageType, UseDefaultProcessorFeatures: p.UseDefaultProcessorFeatures, @@ -599,38 +599,38 @@ func LateInitialize(in *v1beta1.RDSInstanceParameters, db *rdstypes.DBInstance) if db == nil { return } - in.DBInstanceClass = pointer.LateInitializeString(in.DBInstanceClass, db.DBInstanceClass) - in.Engine = pointer.LateInitializeString(in.Engine, db.Engine) + in.DBInstanceClass = pointer.LateInitializeValueFromPtr(in.DBInstanceClass, db.DBInstanceClass) + in.Engine = pointer.LateInitializeValueFromPtr(in.Engine, db.Engine) in.AllocatedStorage = pointer.LateInitializeIntFrom32Ptr(in.AllocatedStorage, &db.AllocatedStorage) - in.AutoMinorVersionUpgrade = pointer.LateInitializeBoolPtr(in.AutoMinorVersionUpgrade, pointer.Bool(db.AutoMinorVersionUpgrade, pointer.FieldRequired)) - in.AvailabilityZone = pointer.LateInitializeStringPtr(in.AvailabilityZone, db.AvailabilityZone) + in.AutoMinorVersionUpgrade = pointer.LateInitialize(in.AutoMinorVersionUpgrade, ptr.To(db.AutoMinorVersionUpgrade)) + in.AvailabilityZone = pointer.LateInitialize(in.AvailabilityZone, db.AvailabilityZone) in.BackupRetentionPeriod = pointer.LateInitializeIntFromInt32Ptr(in.BackupRetentionPeriod, &db.BackupRetentionPeriod) - in.CACertificateIdentifier = pointer.LateInitializeStringPtr(in.CACertificateIdentifier, db.CACertificateIdentifier) - in.CharacterSetName = pointer.LateInitializeStringPtr(in.CharacterSetName, db.CharacterSetName) - in.CopyTagsToSnapshot = pointer.LateInitializeBoolPtr(in.CopyTagsToSnapshot, pointer.Bool(db.CopyTagsToSnapshot, pointer.FieldRequired)) - in.DBClusterIdentifier = pointer.LateInitializeStringPtr(in.DBClusterIdentifier, db.DBClusterIdentifier) - in.DBName = pointer.LateInitializeStringPtr(in.DBName, db.DBName) - in.DeletionProtection = pointer.LateInitializeBoolPtr(in.DeletionProtection, pointer.Bool(db.DeletionProtection, pointer.FieldRequired)) - in.EnableIAMDatabaseAuthentication = pointer.LateInitializeBoolPtr(in.EnableIAMDatabaseAuthentication, pointer.Bool(db.IAMDatabaseAuthenticationEnabled, pointer.FieldRequired)) - in.EnablePerformanceInsights = pointer.LateInitializeBoolPtr(in.EnablePerformanceInsights, db.PerformanceInsightsEnabled) + in.CACertificateIdentifier = pointer.LateInitialize(in.CACertificateIdentifier, db.CACertificateIdentifier) + in.CharacterSetName = pointer.LateInitialize(in.CharacterSetName, db.CharacterSetName) + in.CopyTagsToSnapshot = pointer.LateInitialize(in.CopyTagsToSnapshot, ptr.To(db.CopyTagsToSnapshot)) + in.DBClusterIdentifier = pointer.LateInitialize(in.DBClusterIdentifier, db.DBClusterIdentifier) + in.DBName = pointer.LateInitialize(in.DBName, db.DBName) + in.DeletionProtection = pointer.LateInitialize(in.DeletionProtection, ptr.To(db.DeletionProtection)) + in.EnableIAMDatabaseAuthentication = pointer.LateInitialize(in.EnableIAMDatabaseAuthentication, ptr.To(db.IAMDatabaseAuthenticationEnabled)) + in.EnablePerformanceInsights = pointer.LateInitialize(in.EnablePerformanceInsights, db.PerformanceInsightsEnabled) in.IOPS = pointer.LateInitializeIntFrom32Ptr(in.IOPS, db.Iops) - in.KMSKeyID = pointer.LateInitializeStringPtr(in.KMSKeyID, db.KmsKeyId) - in.LicenseModel = pointer.LateInitializeStringPtr(in.LicenseModel, db.LicenseModel) - in.MasterUsername = pointer.LateInitializeStringPtr(in.MasterUsername, db.MasterUsername) + in.KMSKeyID = pointer.LateInitialize(in.KMSKeyID, db.KmsKeyId) + in.LicenseModel = pointer.LateInitialize(in.LicenseModel, db.LicenseModel) + in.MasterUsername = pointer.LateInitialize(in.MasterUsername, db.MasterUsername) in.MaxAllocatedStorage = pointer.LateInitializeIntFrom32Ptr(in.MaxAllocatedStorage, db.MaxAllocatedStorage) in.MonitoringInterval = pointer.LateInitializeIntFrom32Ptr(in.MonitoringInterval, db.MonitoringInterval) - in.MonitoringRoleARN = pointer.LateInitializeStringPtr(in.MonitoringRoleARN, db.MonitoringRoleArn) - in.MultiAZ = pointer.LateInitializeBoolPtr(in.MultiAZ, pointer.Bool(db.MultiAZ, pointer.FieldRequired)) - in.PerformanceInsightsKMSKeyID = pointer.LateInitializeStringPtr(in.PerformanceInsightsKMSKeyID, db.PerformanceInsightsKMSKeyId) + in.MonitoringRoleARN = pointer.LateInitialize(in.MonitoringRoleARN, db.MonitoringRoleArn) + in.MultiAZ = pointer.LateInitialize(in.MultiAZ, ptr.To(db.MultiAZ)) + in.PerformanceInsightsKMSKeyID = pointer.LateInitialize(in.PerformanceInsightsKMSKeyID, db.PerformanceInsightsKMSKeyId) in.PerformanceInsightsRetentionPeriod = pointer.LateInitializeIntFrom32Ptr(in.PerformanceInsightsRetentionPeriod, db.PerformanceInsightsRetentionPeriod) - in.PreferredBackupWindow = pointer.LateInitializeStringPtr(in.PreferredBackupWindow, db.PreferredBackupWindow) - in.PreferredMaintenanceWindow = pointer.LateInitializeStringPtr(in.PreferredMaintenanceWindow, db.PreferredMaintenanceWindow) + in.PreferredBackupWindow = pointer.LateInitialize(in.PreferredBackupWindow, db.PreferredBackupWindow) + in.PreferredMaintenanceWindow = pointer.LateInitialize(in.PreferredMaintenanceWindow, db.PreferredMaintenanceWindow) in.PromotionTier = pointer.LateInitializeIntFrom32Ptr(in.PromotionTier, db.PromotionTier) - in.PubliclyAccessible = pointer.LateInitializeBoolPtr(in.PubliclyAccessible, pointer.Bool(db.PubliclyAccessible, pointer.FieldRequired)) - in.StorageEncrypted = pointer.LateInitializeBoolPtr(in.StorageEncrypted, pointer.Bool(db.StorageEncrypted, pointer.FieldRequired)) - in.StorageType = pointer.LateInitializeStringPtr(in.StorageType, db.StorageType) - in.Timezone = pointer.LateInitializeStringPtr(in.Timezone, db.Timezone) + in.PubliclyAccessible = pointer.LateInitialize(in.PubliclyAccessible, ptr.To(db.PubliclyAccessible)) + in.StorageEncrypted = pointer.LateInitialize(in.StorageEncrypted, ptr.To(db.StorageEncrypted)) + in.StorageType = pointer.LateInitialize(in.StorageType, db.StorageType) + in.Timezone = pointer.LateInitialize(in.Timezone, db.Timezone) // NOTE(muvaf): Do not use db.DbInstancePort as that always returns 0 for // some reason. See the bug here: @@ -663,7 +663,7 @@ func LateInitialize(in *v1beta1.RDSInstanceParameters, db *rdstypes.DBInstance) in.VPCSecurityGroupIDs[i] = aws.ToString(val.VpcSecurityGroupId) } } - in.EngineVersion = pointer.LateInitializeStringPtr(in.EngineVersion, db.EngineVersion) + in.EngineVersion = pointer.LateInitialize(in.EngineVersion, db.EngineVersion) // When version 5.6 is chosen, AWS creates 5.6.41 and that's totally valid. // But we detect as if we need to update it all the time. Here, we assign // the actual full version to our spec to avoid unnecessary update signals. diff --git a/pkg/clients/database/rds_test.go b/pkg/clients/database/rds_test.go index 7adc8951c3..f6a160ed99 100644 --- a/pkg/clients/database/rds_test.go +++ b/pkg/clients/database/rds_test.go @@ -117,7 +117,7 @@ func TestCreatePatch(t *testing.T) { DBName: &dbName, }, p: &v1beta1.RDSInstanceParameters{ - AllocatedStorage: pointer.IntAddress(pointer.Int64(20)), + AllocatedStorage: ptr.To(20), CharacterSetName: &characterSetName, DBName: &dbName, }, @@ -135,7 +135,7 @@ func TestCreatePatch(t *testing.T) { AvailabilityZone: ptr.To("az1"), }, p: &v1beta1.RDSInstanceParameters{ - AllocatedStorage: pointer.IntAddress(pointer.Int64(30)), + AllocatedStorage: ptr.To(30), CharacterSetName: &characterSetName, DBName: &dbName, AvailabilityZone: ptr.To("az2"), @@ -143,7 +143,7 @@ func TestCreatePatch(t *testing.T) { }, want: want{ patch: &v1beta1.RDSInstanceParameters{ - AllocatedStorage: pointer.IntAddress(pointer.Int64(30)), + AllocatedStorage: ptr.To(30), AvailabilityZone: ptr.To("az2"), }, }, @@ -267,7 +267,7 @@ func TestIsUpToDate(t *testing.T) { r: v1beta1.RDSInstance{ Spec: v1beta1.RDSInstanceSpec{ ForProvider: v1beta1.RDSInstanceParameters{ - AllocatedStorage: pointer.IntAddress(pointer.Int64(20)), + AllocatedStorage: ptr.To(20), CharacterSetName: &characterSetName, DBName: &dbName, }, @@ -286,12 +286,12 @@ func TestIsUpToDate(t *testing.T) { r: v1beta1.RDSInstance{ Spec: v1beta1.RDSInstanceSpec{ ForProvider: v1beta1.RDSInstanceParameters{ - AllocatedStorage: pointer.IntAddress(pointer.Int64(20)), + AllocatedStorage: ptr.To(20), CharacterSetName: &characterSetName, DBName: &dbName, - DeleteAutomatedBackups: pointer.Bool(true), - SkipFinalSnapshotBeforeDeletion: pointer.Bool(true), - FinalDBSnapshotIdentifier: pointer.String("final"), + DeleteAutomatedBackups: pointer.ToOrNilIfZeroValue(true), + SkipFinalSnapshotBeforeDeletion: pointer.ToOrNilIfZeroValue(true), + FinalDBSnapshotIdentifier: pointer.ToOrNilIfZeroValue("final"), }, }, }, @@ -308,7 +308,7 @@ func TestIsUpToDate(t *testing.T) { r: v1beta1.RDSInstance{ Spec: v1beta1.RDSInstanceSpec{ ForProvider: v1beta1.RDSInstanceParameters{ - AllocatedStorage: pointer.IntAddress(pointer.Int64(30)), + AllocatedStorage: ptr.To(30), CharacterSetName: &characterSetName, DBName: &dbName, }, diff --git a/pkg/clients/dbsubnetgroup/dbsubnetgroup.go b/pkg/clients/dbsubnetgroup/dbsubnetgroup.go index 316f59e1e6..78d6e049cf 100644 --- a/pkg/clients/dbsubnetgroup/dbsubnetgroup.go +++ b/pkg/clients/dbsubnetgroup/dbsubnetgroup.go @@ -114,7 +114,7 @@ func LateInitialize(in *v1beta1.DBSubnetGroupParameters, sg *rdstypes.DBSubnetGr return } - in.Description = pointer.LateInitializeString(in.Description, sg.DBSubnetGroupDescription) + in.Description = pointer.LateInitializeValueFromPtr(in.Description, sg.DBSubnetGroupDescription) if len(in.SubnetIDs) == 0 && len(sg.Subnets) != 0 { in.SubnetIDs = make([]string, len(sg.Subnets)) for i, val := range sg.Subnets { diff --git a/pkg/clients/ec2/address.go b/pkg/clients/ec2/address.go index 4b4f373d9b..f97cb8b329 100644 --- a/pkg/clients/ec2/address.go +++ b/pkg/clients/ec2/address.go @@ -60,11 +60,11 @@ func LateInitializeAddress(in *v1beta1.AddressParameters, a *ec2types.Address) { if a == nil { return } - in.Address = pointer.LateInitializeStringPtr(in.Address, a.PublicIp) - in.Domain = pointer.LateInitializeStringPtr(in.Domain, aws.String(string(a.Domain))) - in.CustomerOwnedIPv4Pool = pointer.LateInitializeStringPtr(in.CustomerOwnedIPv4Pool, a.CustomerOwnedIpv4Pool) - in.NetworkBorderGroup = pointer.LateInitializeStringPtr(in.NetworkBorderGroup, a.NetworkBorderGroup) - in.PublicIPv4Pool = pointer.LateInitializeStringPtr(in.PublicIPv4Pool, a.PublicIpv4Pool) + in.Address = pointer.LateInitialize(in.Address, a.PublicIp) + in.Domain = pointer.LateInitialize(in.Domain, aws.String(string(a.Domain))) + in.CustomerOwnedIPv4Pool = pointer.LateInitialize(in.CustomerOwnedIPv4Pool, a.CustomerOwnedIpv4Pool) + in.NetworkBorderGroup = pointer.LateInitialize(in.NetworkBorderGroup, a.NetworkBorderGroup) + in.PublicIPv4Pool = pointer.LateInitialize(in.PublicIPv4Pool, a.PublicIpv4Pool) if len(in.Tags) == 0 && len(a.Tags) != 0 { in.Tags = BuildFromEC2Tags(a.Tags) } diff --git a/pkg/clients/ec2/address_test.go b/pkg/clients/ec2/address_test.go index 2bdd35340e..67c2ab77f3 100644 --- a/pkg/clients/ec2/address_test.go +++ b/pkg/clients/ec2/address_test.go @@ -34,18 +34,18 @@ func TestGenerateAddressObservation(t *testing.T) { }{ "AllFilled": { in: ec2types.Address{ - AllocationId: pointer.String(allocationID), - AssociationId: pointer.String(associationID), - CustomerOwnedIp: pointer.String(testIPAddress), - CustomerOwnedIpv4Pool: pointer.String(poolName), + AllocationId: pointer.ToOrNilIfZeroValue(allocationID), + AssociationId: pointer.ToOrNilIfZeroValue(associationID), + CustomerOwnedIp: pointer.ToOrNilIfZeroValue(testIPAddress), + CustomerOwnedIpv4Pool: pointer.ToOrNilIfZeroValue(poolName), Domain: ec2types.DomainType(domain), - InstanceId: pointer.String(instanceID), - NetworkBorderGroup: pointer.String(networkBorderGroup), - NetworkInterfaceId: pointer.String(networkInterfaceID), - NetworkInterfaceOwnerId: pointer.String(networkInterfaceOwnerID), - PrivateIpAddress: pointer.String(testIPAddress), - PublicIp: pointer.String(testIPAddress), - PublicIpv4Pool: pointer.String(poolName), + InstanceId: pointer.ToOrNilIfZeroValue(instanceID), + NetworkBorderGroup: pointer.ToOrNilIfZeroValue(networkBorderGroup), + NetworkInterfaceId: pointer.ToOrNilIfZeroValue(networkInterfaceID), + NetworkInterfaceOwnerId: pointer.ToOrNilIfZeroValue(networkInterfaceOwnerID), + PrivateIpAddress: pointer.ToOrNilIfZeroValue(testIPAddress), + PublicIp: pointer.ToOrNilIfZeroValue(testIPAddress), + PublicIpv4Pool: pointer.ToOrNilIfZeroValue(poolName), Tags: []ec2types.Tag{ec2tag}, }, out: v1beta1.AddressObservation{ diff --git a/pkg/clients/ec2/instance.go b/pkg/clients/ec2/instance.go index 3153a33df1..ac6eff7103 100644 --- a/pkg/clients/ec2/instance.go +++ b/pkg/clients/ec2/instance.go @@ -183,24 +183,24 @@ func LateInitializeInstance(in *manualv1alpha1.InstanceParameters, instance *typ } if attributes.DisableApiTermination != nil { - in.DisableAPITermination = pointer.LateInitializeBoolPtr(in.DisableAPITermination, attributes.DisableApiTermination.Value) + in.DisableAPITermination = pointer.LateInitialize(in.DisableAPITermination, attributes.DisableApiTermination.Value) } if attributes.InstanceInitiatedShutdownBehavior != nil { - in.InstanceInitiatedShutdownBehavior = pointer.LateInitializeString(in.InstanceInitiatedShutdownBehavior, attributes.InstanceInitiatedShutdownBehavior.Value) + in.InstanceInitiatedShutdownBehavior = pointer.LateInitializeValueFromPtr(in.InstanceInitiatedShutdownBehavior, attributes.InstanceInitiatedShutdownBehavior.Value) } if attributes.InstanceType != nil { - in.InstanceType = pointer.LateInitializeString(in.InstanceType, attributes.InstanceType.Value) + in.InstanceType = pointer.LateInitializeValueFromPtr(in.InstanceType, attributes.InstanceType.Value) } if attributes.UserData != nil { - in.UserData = pointer.LateInitializeStringPtr(in.UserData, attributes.UserData.Value) + in.UserData = pointer.LateInitialize(in.UserData, attributes.UserData.Value) } - in.EBSOptimized = pointer.LateInitializeBoolPtr(in.EBSOptimized, instance.EbsOptimized) - in.KernelID = pointer.LateInitializeStringPtr(in.KernelID, instance.KernelId) - in.RAMDiskID = pointer.LateInitializeStringPtr(in.RAMDiskID, instance.RamdiskId) + in.EBSOptimized = pointer.LateInitialize(in.EBSOptimized, instance.EbsOptimized) + in.KernelID = pointer.LateInitialize(in.KernelID, instance.KernelId) + in.RAMDiskID = pointer.LateInitialize(in.RAMDiskID, instance.RamdiskId) if len(in.SecurityGroupIDs) == 0 && len(instance.SecurityGroups) != 0 { in.SecurityGroupIDs = make([]string, len(instance.SecurityGroups)) diff --git a/pkg/clients/ec2/internetgateway.go b/pkg/clients/ec2/internetgateway.go index 03ac763896..8a69208865 100644 --- a/pkg/clients/ec2/internetgateway.go +++ b/pkg/clients/ec2/internetgateway.go @@ -78,7 +78,7 @@ func LateInitializeIG(in *v1beta1.InternetGatewayParameters, ig *ec2types.Intern return } if ig.Attachments != nil && len(ig.Attachments) > 0 { - in.VPCID = pointer.LateInitializeStringPtr(in.VPCID, ig.Attachments[0].VpcId) + in.VPCID = pointer.LateInitialize(in.VPCID, ig.Attachments[0].VpcId) } if len(in.Tags) == 0 && len(ig.Tags) != 0 { in.Tags = BuildFromEC2TagsV1Beta1(ig.Tags) diff --git a/pkg/clients/ec2/internetgateway_test.go b/pkg/clients/ec2/internetgateway_test.go index ecf5c75e7d..4c4f040fe0 100644 --- a/pkg/clients/ec2/internetgateway_test.go +++ b/pkg/clients/ec2/internetgateway_test.go @@ -19,7 +19,7 @@ var ( func igAttachments() []ec2types.InternetGatewayAttachment { return []ec2types.InternetGatewayAttachment{ { - VpcId: pointer.String(vpcID), + VpcId: pointer.ToOrNilIfZeroValue(vpcID), State: ec2types.AttachmentStatusAttached, }, } @@ -47,10 +47,10 @@ func TestIsIGUpToDate(t *testing.T) { args: args{ ig: ec2types.InternetGateway{ Attachments: igAttachments(), - InternetGatewayId: pointer.String(igID), + InternetGatewayId: pointer.ToOrNilIfZeroValue(igID), }, p: v1beta1.InternetGatewayParameters{ - VPCID: pointer.String(vpcID), + VPCID: pointer.ToOrNilIfZeroValue(vpcID), }, }, want: true, @@ -59,7 +59,7 @@ func TestIsIGUpToDate(t *testing.T) { args: args{ ig: ec2types.InternetGateway{ Attachments: igAttachments(), - InternetGatewayId: pointer.String(igID), + InternetGatewayId: pointer.ToOrNilIfZeroValue(igID), }, p: v1beta1.InternetGatewayParameters{}, }, @@ -85,8 +85,8 @@ func TestGenerateIGObservation(t *testing.T) { "AllFilled": { in: ec2types.InternetGateway{ Attachments: igAttachments(), - InternetGatewayId: pointer.String(igID), - OwnerId: pointer.String(ownerID), + InternetGatewayId: pointer.ToOrNilIfZeroValue(igID), + OwnerId: pointer.ToOrNilIfZeroValue(ownerID), }, out: v1beta1.InternetGatewayObservation{ Attachments: specAttachments(), @@ -97,7 +97,7 @@ func TestGenerateIGObservation(t *testing.T) { "NoOwnerId": { in: ec2types.InternetGateway{ Attachments: igAttachments(), - InternetGatewayId: pointer.String(igID), + InternetGatewayId: pointer.ToOrNilIfZeroValue(igID), }, out: v1beta1.InternetGatewayObservation{ Attachments: specAttachments(), diff --git a/pkg/clients/ec2/natgateway_test.go b/pkg/clients/ec2/natgateway_test.go index 4a0102262f..4c58002b03 100644 --- a/pkg/clients/ec2/natgateway_test.go +++ b/pkg/clients/ec2/natgateway_test.go @@ -27,12 +27,12 @@ var ( func natTags() []ec2types.Tag { return []ec2types.Tag{ { - Key: pointer.String("key1"), - Value: pointer.String("value1"), + Key: pointer.ToOrNilIfZeroValue("key1"), + Value: pointer.ToOrNilIfZeroValue("value1"), }, { - Key: pointer.String("key2"), - Value: pointer.String("value2"), + Key: pointer.ToOrNilIfZeroValue("key2"), + Value: pointer.ToOrNilIfZeroValue("value2"), }, } } @@ -40,10 +40,10 @@ func natTags() []ec2types.Tag { func natAddresses() []ec2types.NatGatewayAddress { return []ec2types.NatGatewayAddress{ { - AllocationId: pointer.String(natAllocationID), - NetworkInterfaceId: pointer.String(natNetworkInterfaceID), - PrivateIp: pointer.String(natPrivateIP), - PublicIp: pointer.String(natPublicIP), + AllocationId: pointer.ToOrNilIfZeroValue(natAllocationID), + NetworkInterfaceId: pointer.ToOrNilIfZeroValue(natNetworkInterfaceID), + PrivateIp: pointer.ToOrNilIfZeroValue(natPrivateIP), + PublicIp: pointer.ToOrNilIfZeroValue(natPublicIP), }, } } @@ -69,11 +69,11 @@ func TestGenerateNATGatewayObservation(t *testing.T) { in: ec2types.NatGateway{ CreateTime: &time, NatGatewayAddresses: natAddresses(), - NatGatewayId: pointer.String(natGatewayID), + NatGatewayId: pointer.ToOrNilIfZeroValue(natGatewayID), State: v1beta1.NatGatewayStatusAvailable, - SubnetId: pointer.String(natSubnetID), + SubnetId: pointer.ToOrNilIfZeroValue(natSubnetID), Tags: natTags(), - VpcId: pointer.String(natVpcID), + VpcId: pointer.ToOrNilIfZeroValue(natVpcID), }, out: v1beta1.NATGatewayObservation{ CreateTime: &v1.Time{Time: time}, @@ -88,11 +88,11 @@ func TestGenerateNATGatewayObservation(t *testing.T) { CreateTime: &time, DeleteTime: &time, NatGatewayAddresses: natAddresses(), - NatGatewayId: pointer.String(natGatewayID), + NatGatewayId: pointer.ToOrNilIfZeroValue(natGatewayID), State: v1beta1.NatGatewayStatusPending, - SubnetId: pointer.String(natSubnetID), + SubnetId: pointer.ToOrNilIfZeroValue(natSubnetID), Tags: natTags(), - VpcId: pointer.String(natVpcID), + VpcId: pointer.ToOrNilIfZeroValue(natVpcID), }, out: v1beta1.NATGatewayObservation{ CreateTime: &v1.Time{Time: time}, @@ -107,14 +107,14 @@ func TestGenerateNATGatewayObservation(t *testing.T) { in: ec2types.NatGateway{ CreateTime: &time, DeleteTime: &time, - FailureCode: pointer.String(natFailureCode), - FailureMessage: pointer.String(natFailureMessage), + FailureCode: pointer.ToOrNilIfZeroValue(natFailureCode), + FailureMessage: pointer.ToOrNilIfZeroValue(natFailureMessage), NatGatewayAddresses: natAddresses(), - NatGatewayId: pointer.String(natGatewayID), + NatGatewayId: pointer.ToOrNilIfZeroValue(natGatewayID), State: v1beta1.NatGatewayStatusFailed, - SubnetId: pointer.String(natSubnetID), + SubnetId: pointer.ToOrNilIfZeroValue(natSubnetID), Tags: natTags(), - VpcId: pointer.String(natVpcID), + VpcId: pointer.ToOrNilIfZeroValue(natVpcID), }, out: v1beta1.NATGatewayObservation{ CreateTime: &v1.Time{Time: time}, diff --git a/pkg/clients/ec2/routetable.go b/pkg/clients/ec2/routetable.go index 6ca338d496..02dc2e8bba 100644 --- a/pkg/clients/ec2/routetable.go +++ b/pkg/clients/ec2/routetable.go @@ -118,7 +118,7 @@ func LateInitializeRT(in *v1beta1.RouteTableParameters, rt *ec2types.RouteTable) if rt == nil { return } - in.VPCID = pointer.LateInitializeStringPtr(in.VPCID, rt.VpcId) + in.VPCID = pointer.LateInitialize(in.VPCID, rt.VpcId) if !pointer.BoolValue(in.IgnoreRoutes) { if len(in.Routes) == 0 && len(rt.Routes) != 0 { diff --git a/pkg/clients/ec2/securitygroup.go b/pkg/clients/ec2/securitygroup.go index fd6f0bb332..ad1da465d9 100644 --- a/pkg/clients/ec2/securitygroup.go +++ b/pkg/clients/ec2/securitygroup.go @@ -60,25 +60,25 @@ func GenerateEC2Permissions(objectPerms []v1beta1.IPPermission) []ec2types.IpPer for i, p := range objectPerms { ipPerm := ec2types.IpPermission{ FromPort: p.FromPort, - IpProtocol: pointer.String(p.IPProtocol), + IpProtocol: pointer.ToOrNilIfZeroValue(p.IPProtocol), ToPort: p.ToPort, } for _, c := range p.IPRanges { ipPerm.IpRanges = append(ipPerm.IpRanges, ec2types.IpRange{ - CidrIp: pointer.String(c.CIDRIP), + CidrIp: pointer.ToOrNilIfZeroValue(c.CIDRIP), Description: c.Description, }) } for _, c := range p.IPv6Ranges { ipPerm.Ipv6Ranges = append(ipPerm.Ipv6Ranges, ec2types.Ipv6Range{ - CidrIpv6: pointer.String(c.CIDRIPv6), + CidrIpv6: pointer.ToOrNilIfZeroValue(c.CIDRIPv6), Description: c.Description, }) } for _, c := range p.PrefixListIDs { ipPerm.PrefixListIds = append(ipPerm.PrefixListIds, ec2types.PrefixListId{ Description: c.Description, - PrefixListId: pointer.String(c.PrefixListID), + PrefixListId: pointer.ToOrNilIfZeroValue(c.PrefixListID), }) } for _, c := range p.UserIDGroupPairs { @@ -112,9 +112,9 @@ func LateInitializeSG(in *v1beta1.SecurityGroupParameters, sg *ec2types.Security return } - in.Description = pointer.LateInitializeString(in.Description, sg.Description) - in.GroupName = pointer.LateInitializeString(in.GroupName, sg.GroupName) - in.VPCID = pointer.LateInitializeStringPtr(in.VPCID, sg.VpcId) + in.Description = pointer.LateInitializeValueFromPtr(in.Description, sg.Description) + in.GroupName = pointer.LateInitializeValueFromPtr(in.GroupName, sg.GroupName) + in.VPCID = pointer.LateInitialize(in.VPCID, sg.VpcId) // We cannot safely late init egress/ingress rules because they are keyless arrays diff --git a/pkg/clients/ec2/subnet.go b/pkg/clients/ec2/subnet.go index f587ad47b1..24caf027e1 100644 --- a/pkg/clients/ec2/subnet.go +++ b/pkg/clients/ec2/subnet.go @@ -61,15 +61,15 @@ func LateInitializeSubnet(in *v1beta1.SubnetParameters, s *ec2types.Subnet) { return } - in.AssignIPv6AddressOnCreation = pointer.LateInitializeBoolPtr(in.AssignIPv6AddressOnCreation, s.AssignIpv6AddressOnCreation) - in.AvailabilityZone = pointer.LateInitializeStringPtr(in.AvailabilityZone, s.AvailabilityZone) - in.AvailabilityZoneID = pointer.LateInitializeStringPtr(in.AvailabilityZoneID, s.AvailabilityZoneId) - in.CIDRBlock = pointer.LateInitializeString(in.CIDRBlock, s.CidrBlock) - in.MapPublicIPOnLaunch = pointer.LateInitializeBoolPtr(in.MapPublicIPOnLaunch, s.MapPublicIpOnLaunch) - in.VPCID = pointer.LateInitializeStringPtr(in.VPCID, s.VpcId) + in.AssignIPv6AddressOnCreation = pointer.LateInitialize(in.AssignIPv6AddressOnCreation, s.AssignIpv6AddressOnCreation) + in.AvailabilityZone = pointer.LateInitialize(in.AvailabilityZone, s.AvailabilityZone) + in.AvailabilityZoneID = pointer.LateInitialize(in.AvailabilityZoneID, s.AvailabilityZoneId) + in.CIDRBlock = pointer.LateInitializeValueFromPtr(in.CIDRBlock, s.CidrBlock) + in.MapPublicIPOnLaunch = pointer.LateInitialize(in.MapPublicIPOnLaunch, s.MapPublicIpOnLaunch) + in.VPCID = pointer.LateInitialize(in.VPCID, s.VpcId) if s.Ipv6CidrBlockAssociationSet != nil && len(s.Ipv6CidrBlockAssociationSet) > 0 { - in.IPv6CIDRBlock = pointer.LateInitializeStringPtr(in.IPv6CIDRBlock, s.Ipv6CidrBlockAssociationSet[0].Ipv6CidrBlock) + in.IPv6CIDRBlock = pointer.LateInitialize(in.IPv6CIDRBlock, s.Ipv6CidrBlockAssociationSet[0].Ipv6CidrBlock) } if len(in.Tags) == 0 && len(s.Tags) != 0 { diff --git a/pkg/clients/ec2/vpc.go b/pkg/clients/ec2/vpc.go index 3729f4e5e4..51c9bd2a73 100644 --- a/pkg/clients/ec2/vpc.go +++ b/pkg/clients/ec2/vpc.go @@ -107,16 +107,16 @@ func LateInitializeVPC(in *v1beta1.VPCParameters, v *ec2types.Vpc, attributes *e return } - in.CIDRBlock = pointer.LateInitializeString(in.CIDRBlock, v.CidrBlock) - in.InstanceTenancy = pointer.LateInitializeStringPtr(in.InstanceTenancy, pointer.String(string(v.InstanceTenancy))) + in.CIDRBlock = pointer.LateInitializeValueFromPtr(in.CIDRBlock, v.CidrBlock) + in.InstanceTenancy = pointer.LateInitialize(in.InstanceTenancy, pointer.ToOrNilIfZeroValue(string(v.InstanceTenancy))) if len(v.Ipv6CidrBlockAssociationSet) != 0 { ipv6Association := v.Ipv6CidrBlockAssociationSet[0] - in.Ipv6CIDRBlock = pointer.LateInitializeStringPtr(in.Ipv6CIDRBlock, ipv6Association.Ipv6CidrBlock) + in.Ipv6CIDRBlock = pointer.LateInitialize(in.Ipv6CIDRBlock, ipv6Association.Ipv6CidrBlock) } if attributes.EnableDnsHostnames != nil { - in.EnableDNSHostNames = pointer.LateInitializeBoolPtr(in.EnableDNSHostNames, attributes.EnableDnsHostnames.Value) + in.EnableDNSHostNames = pointer.LateInitialize(in.EnableDNSHostNames, attributes.EnableDnsHostnames.Value) } if attributes.EnableDnsHostnames != nil { - in.EnableDNSSupport = pointer.LateInitializeBoolPtr(in.EnableDNSSupport, attributes.EnableDnsSupport.Value) + in.EnableDNSSupport = pointer.LateInitialize(in.EnableDNSSupport, attributes.EnableDnsSupport.Value) } } diff --git a/pkg/clients/ec2/vpc_test.go b/pkg/clients/ec2/vpc_test.go index 2fb41bc11f..6200cb731e 100644 --- a/pkg/clients/ec2/vpc_test.go +++ b/pkg/clients/ec2/vpc_test.go @@ -24,8 +24,8 @@ func TestGenerateVPCObservation(t *testing.T) { "AllFilled": { in: ec2types.Vpc{ IsDefault: &boolFalse, - OwnerId: pointer.String(vpcOwner), - VpcId: pointer.String(vpcID), + OwnerId: pointer.ToOrNilIfZeroValue(vpcOwner), + VpcId: pointer.ToOrNilIfZeroValue(vpcID), State: ec2types.VpcStateAvailable, }, out: v1beta1.VPCObservation{ @@ -38,7 +38,7 @@ func TestGenerateVPCObservation(t *testing.T) { "NoOwner": { in: ec2types.Vpc{ IsDefault: &boolFalse, - VpcId: pointer.String(vpcID), + VpcId: pointer.ToOrNilIfZeroValue(vpcID), State: ec2types.VpcStateAvailable, }, out: v1beta1.VPCObservation{ diff --git a/pkg/clients/ecr/repository.go b/pkg/clients/ecr/repository.go index 6b47aaed17..09d73d2855 100644 --- a/pkg/clients/ecr/repository.go +++ b/pkg/clients/ecr/repository.go @@ -68,7 +68,7 @@ func LateInitializeRepository(in *v1beta1.RepositoryParameters, r *ecrtypes.Repo } in.ImageScanningConfiguration = &scanConfig } - in.ImageTagMutability = pointer.LateInitializeStringPtr(in.ImageTagMutability, pointer.String(string(r.ImageTagMutability))) + in.ImageTagMutability = pointer.LateInitialize(in.ImageTagMutability, pointer.ToOrNilIfZeroValue(string(r.ImageTagMutability))) } // CreatePatch creates a *v1alpha1.RepositoryParameters that has only the changed @@ -114,7 +114,7 @@ func IsRepoNotFoundErr(err error) bool { // GenerateCreateRepositoryInput Generates the CreateRepositoryInput from the RepositoryParameters func GenerateCreateRepositoryInput(name string, params *v1beta1.RepositoryParameters) *ecr.CreateRepositoryInput { c := &ecr.CreateRepositoryInput{ - RepositoryName: pointer.String(name), + RepositoryName: pointer.ToOrNilIfZeroValue(name), ImageTagMutability: ecrtypes.ImageTagMutability(pointer.StringValue(params.ImageTagMutability)), } if params.ImageScanningConfiguration != nil { diff --git a/pkg/clients/ecr/repository_policy.go b/pkg/clients/ecr/repository_policy.go index d48c67c783..5beda3b59a 100644 --- a/pkg/clients/ecr/repository_policy.go +++ b/pkg/clients/ecr/repository_policy.go @@ -43,7 +43,7 @@ func LateInitializeRepositoryPolicy(in *v1beta1.RepositoryPolicyParameters, r *e if r == nil { return } - in.RegistryID = pointer.LateInitializeStringPtr(in.RegistryID, r.RegistryId) + in.RegistryID = pointer.LateInitialize(in.RegistryID, r.RegistryId) } // IsPolicyNotFoundErr returns true if the error code indicates that the policy was not found diff --git a/pkg/clients/ecr/repository_policy_test.go b/pkg/clients/ecr/repository_policy_test.go index eaca082914..884b7d5a96 100644 --- a/pkg/clients/ecr/repository_policy_test.go +++ b/pkg/clients/ecr/repository_policy_test.go @@ -16,7 +16,7 @@ import ( var ( // an arbitrary managed resource effect = "Allow" - statementID = pointer.String("1") + statementID = pointer.ToOrNilIfZeroValue("1") boolCheck = true testID = "id" policy = `{"Statement":[{"Action":"ecr:ListImages","Effect":"Allow","Principal":"*"}],"Version":"2012-10-17"}` @@ -114,15 +114,15 @@ func TestSerializeRepositoryPolicyStatement(t *testing.T) { withPrincipal(&v1beta1.RepositoryPrincipal{ AWSPrincipals: []v1beta1.AWSPrincipal{ { - UserARN: pointer.String("arn:aws:iam::111122223333:userARN"), + UserARN: pointer.ToOrNilIfZeroValue("arn:aws:iam::111122223333:userARN"), }, { // Note: should be converted to full ARN when serialized // to avoid needless updates. - AWSAccountID: pointer.String("111122223334"), + AWSAccountID: pointer.ToOrNilIfZeroValue("111122223334"), }, { - IAMRoleARN: pointer.String("arn:aws:iam::111122223333:roleARN"), + IAMRoleARN: pointer.ToOrNilIfZeroValue("arn:aws:iam::111122223333:roleARN"), }, }, }), @@ -133,11 +133,11 @@ func TestSerializeRepositoryPolicyStatement(t *testing.T) { Conditions: []v1beta1.ConditionPair{ { ConditionKey: "test", - ConditionStringValue: pointer.String("testKey"), + ConditionStringValue: pointer.ToOrNilIfZeroValue("testKey"), }, { ConditionKey: "test2", - ConditionStringValue: pointer.String("testKey2"), + ConditionStringValue: pointer.ToOrNilIfZeroValue("testKey2"), }, }, }, diff --git a/pkg/clients/ecr/repository_test.go b/pkg/clients/ecr/repository_test.go index f64979ff39..4a5067722f 100644 --- a/pkg/clients/ecr/repository_test.go +++ b/pkg/clients/ecr/repository_test.go @@ -45,10 +45,10 @@ func TestGenerateRepositoryObservation(t *testing.T) { CreatedAt: &createTime, ImageScanningConfiguration: &awsImageScanConfig, ImageTagMutability: ecrtypes.ImageTagMutability(tagMutability), - RegistryId: pointer.String(registryID), - RepositoryName: pointer.String(repositoryName), - RepositoryArn: pointer.String(repositoryARN), - RepositoryUri: pointer.String(repositoryURI), + RegistryId: pointer.ToOrNilIfZeroValue(registryID), + RepositoryName: pointer.ToOrNilIfZeroValue(repositoryName), + RepositoryArn: pointer.ToOrNilIfZeroValue(repositoryARN), + RepositoryUri: pointer.ToOrNilIfZeroValue(repositoryURI), }, out: v1beta1.RepositoryObservation{ CreatedAt: &metav1.Time{Time: createTime}, @@ -237,7 +237,7 @@ func TestDiffTags(t *testing.T) { }, want: want{ add: []ecrtypes.Tag{ - {Key: pointer.String("key"), Value: pointer.String("val")}, + {Key: pointer.ToOrNilIfZeroValue("key"), Value: pointer.ToOrNilIfZeroValue("val")}, }, }, }, @@ -249,13 +249,13 @@ func TestDiffTags(t *testing.T) { {Key: "key2", Value: "val2"}, }, remote: []ecrtypes.Tag{ - {Key: pointer.String("key"), Value: pointer.String("val")}, + {Key: pointer.ToOrNilIfZeroValue("key"), Value: pointer.ToOrNilIfZeroValue("val")}, }, }, want: want{ add: []ecrtypes.Tag{ - {Key: pointer.String("key1"), Value: pointer.String("val1")}, - {Key: pointer.String("key2"), Value: pointer.String("val2")}, + {Key: pointer.ToOrNilIfZeroValue("key1"), Value: pointer.ToOrNilIfZeroValue("val1")}, + {Key: pointer.ToOrNilIfZeroValue("key2"), Value: pointer.ToOrNilIfZeroValue("val2")}, }, }, }, @@ -267,14 +267,14 @@ func TestDiffTags(t *testing.T) { {Key: "key2", Value: "val2"}, }, remote: []ecrtypes.Tag{ - {Key: pointer.String("key"), Value: pointer.String("val")}, - {Key: pointer.String("key1"), Value: pointer.String("val1")}, - {Key: pointer.String("key2"), Value: pointer.String("val2")}, + {Key: pointer.ToOrNilIfZeroValue("key"), Value: pointer.ToOrNilIfZeroValue("val")}, + {Key: pointer.ToOrNilIfZeroValue("key1"), Value: pointer.ToOrNilIfZeroValue("val1")}, + {Key: pointer.ToOrNilIfZeroValue("key2"), Value: pointer.ToOrNilIfZeroValue("val2")}, }, }, want: want{ add: []ecrtypes.Tag{ - {Key: pointer.String("key"), Value: pointer.String("different")}, + {Key: pointer.ToOrNilIfZeroValue("key"), Value: pointer.ToOrNilIfZeroValue("different")}, }, remove: []string{"key"}, }, @@ -282,9 +282,9 @@ func TestDiffTags(t *testing.T) { "RemoveAll": { args: args{ remote: []ecrtypes.Tag{ - {Key: pointer.String("key"), Value: pointer.String("val")}, - {Key: pointer.String("key1"), Value: pointer.String("val1")}, - {Key: pointer.String("key2"), Value: pointer.String("val2")}, + {Key: pointer.ToOrNilIfZeroValue("key"), Value: pointer.ToOrNilIfZeroValue("val")}, + {Key: pointer.ToOrNilIfZeroValue("key1"), Value: pointer.ToOrNilIfZeroValue("val1")}, + {Key: pointer.ToOrNilIfZeroValue("key2"), Value: pointer.ToOrNilIfZeroValue("val2")}, }, }, want: want{ diff --git a/pkg/clients/eks/eks.go b/pkg/clients/eks/eks.go index 07aba1b9a3..c8fa07aea8 100644 --- a/pkg/clients/eks/eks.go +++ b/pkg/clients/eks/eks.go @@ -111,7 +111,7 @@ func IsErrorInvalidRequest(err error) bool { // GenerateCreateClusterInput from ClusterParameters. func GenerateCreateClusterInput(name string, p *v1beta1.ClusterParameters) *eks.CreateClusterInput { c := &eks.CreateClusterInput{ - Name: pointer.String(name), + Name: pointer.ToOrNilIfZeroValue(name), RoleArn: &p.RoleArn, Version: p.Version, } @@ -125,7 +125,7 @@ func GenerateCreateClusterInput(name string, p *v1beta1.ClusterParameters) *eks. IpFamily: ekstypes.IpFamily(p.KubernetesNetworkConfig.IPFamily), } if p.KubernetesNetworkConfig.ServiceIpv4Cidr != "" { - c.KubernetesNetworkConfig.ServiceIpv4Cidr = pointer.String(p.KubernetesNetworkConfig.ServiceIpv4Cidr) + c.KubernetesNetworkConfig.ServiceIpv4Cidr = pointer.ToOrNilIfZeroValue(p.KubernetesNetworkConfig.ServiceIpv4Cidr) } } @@ -165,7 +165,7 @@ func GenerateEncryptionConfig(parameters *v1beta1.ClusterParameters) []ekstypes. for i, conf := range parameters.EncryptionConfig { encryptionConfig[i] = ekstypes.EncryptionConfig{ Provider: &ekstypes.Provider{ - KeyArn: pointer.String(conf.Provider.KeyArn), + KeyArn: pointer.ToOrNilIfZeroValue(conf.Provider.KeyArn), }, Resources: conf.Resources, } @@ -195,7 +195,7 @@ func CreatePatch(in *ekstypes.Cluster, target *v1beta1.ClusterParameters) (*v1be // GenerateUpdateClusterConfigInputForLogging from ClusterParameters. func GenerateUpdateClusterConfigInputForLogging(name string, p *v1beta1.ClusterParameters) *eks.UpdateClusterConfigInput { u := &eks.UpdateClusterConfigInput{ - Name: pointer.String(name), + Name: pointer.ToOrNilIfZeroValue(name), } u.Logging = &ekstypes.Logging{ @@ -217,7 +217,7 @@ func GenerateUpdateClusterConfigInputForLogging(name string, p *v1beta1.ClusterP // GenerateUpdateClusterConfigInputForVPC from ClusterParameters. func GenerateUpdateClusterConfigInputForVPC(name string, p *v1beta1.ClusterParameters) *eks.UpdateClusterConfigInput { u := &eks.UpdateClusterConfigInput{ - Name: pointer.String(name), + Name: pointer.ToOrNilIfZeroValue(name), } // NOTE(muvaf): SecurityGroupIds and SubnetIds cannot be updated. They are @@ -326,8 +326,8 @@ func LateInitialize(in *v1beta1.ClusterParameters, cluster *ekstypes.Cluster) { } } if cluster.ResourcesVpcConfig != nil { - in.ResourcesVpcConfig.EndpointPrivateAccess = pointer.LateInitializeBoolPtr(in.ResourcesVpcConfig.EndpointPrivateAccess, &cluster.ResourcesVpcConfig.EndpointPrivateAccess) - in.ResourcesVpcConfig.EndpointPublicAccess = pointer.LateInitializeBoolPtr(in.ResourcesVpcConfig.EndpointPublicAccess, &cluster.ResourcesVpcConfig.EndpointPublicAccess) + in.ResourcesVpcConfig.EndpointPrivateAccess = pointer.LateInitialize(in.ResourcesVpcConfig.EndpointPrivateAccess, &cluster.ResourcesVpcConfig.EndpointPrivateAccess) + in.ResourcesVpcConfig.EndpointPublicAccess = pointer.LateInitialize(in.ResourcesVpcConfig.EndpointPublicAccess, &cluster.ResourcesVpcConfig.EndpointPublicAccess) if len(in.ResourcesVpcConfig.PublicAccessCidrs) == 0 && len(cluster.ResourcesVpcConfig.PublicAccessCidrs) > 0 { in.ResourcesVpcConfig.PublicAccessCidrs = cluster.ResourcesVpcConfig.PublicAccessCidrs } @@ -339,8 +339,8 @@ func LateInitialize(in *v1beta1.ClusterParameters, cluster *ekstypes.Cluster) { in.ResourcesVpcConfig.SubnetIDs = cluster.ResourcesVpcConfig.SubnetIds } } - in.RoleArn = pointer.LateInitializeString(in.RoleArn, cluster.RoleArn) - in.Version = pointer.LateInitializeStringPtr(in.Version, cluster.Version) + in.RoleArn = pointer.LateInitializeValueFromPtr(in.RoleArn, cluster.RoleArn) + in.Version = pointer.LateInitialize(in.Version, cluster.Version) // NOTE(hasheddan): we always will set the default Crossplane tags in // practice during initialization in the controller, but we check if no tags // exist for consistency with expected late initialization behavior. diff --git a/pkg/clients/eks/nodegroup.go b/pkg/clients/eks/nodegroup.go index 3ed1d2f9c5..3fe9dca566 100644 --- a/pkg/clients/eks/nodegroup.go +++ b/pkg/clients/eks/nodegroup.go @@ -249,9 +249,9 @@ func LateInitializeNodeGroup(in *manualv1alpha1.NodeGroupParameters, ng *ekstype if ng == nil { return } - in.AMIType = pointer.LateInitializeStringPtr(in.AMIType, pointer.String(string(ng.AmiType))) - in.CapacityType = pointer.LateInitializeStringPtr(in.CapacityType, pointer.String(string(ng.CapacityType))) - in.DiskSize = pointer.LateInitializeInt32Ptr(in.DiskSize, ng.DiskSize) + in.AMIType = pointer.LateInitialize(in.AMIType, pointer.ToOrNilIfZeroValue(string(ng.AmiType))) + in.CapacityType = pointer.LateInitialize(in.CapacityType, pointer.ToOrNilIfZeroValue(string(ng.CapacityType))) + in.DiskSize = pointer.LateInitialize(in.DiskSize, ng.DiskSize) if len(in.InstanceTypes) == 0 && len(ng.InstanceTypes) > 0 { in.InstanceTypes = ng.InstanceTypes } @@ -279,15 +279,15 @@ func LateInitializeNodeGroup(in *manualv1alpha1.NodeGroupParameters, ng *ekstype if in.UpdateConfig == nil { in.UpdateConfig = &manualv1alpha1.NodeGroupUpdateConfig{} } - in.UpdateConfig.Force = pointer.LateInitializeBoolPtr(in.UpdateConfig.Force, aws.Bool(false)) + in.UpdateConfig.Force = pointer.LateInitialize(in.UpdateConfig.Force, aws.Bool(false)) if ng.UpdateConfig != nil { - in.UpdateConfig.MaxUnavailable = pointer.LateInitializeInt32Ptr(in.UpdateConfig.MaxUnavailable, ng.UpdateConfig.MaxUnavailable) + in.UpdateConfig.MaxUnavailable = pointer.LateInitialize(in.UpdateConfig.MaxUnavailable, ng.UpdateConfig.MaxUnavailable) } if in.LaunchTemplate != nil && ng.LaunchTemplate != nil && ng.LaunchTemplate.Version != nil { - in.LaunchTemplate.Version = pointer.LateInitializeStringPtr(in.LaunchTemplate.Version, ng.LaunchTemplate.Version) + in.LaunchTemplate.Version = pointer.LateInitialize(in.LaunchTemplate.Version, ng.LaunchTemplate.Version) } - in.ReleaseVersion = pointer.LateInitializeStringPtr(in.ReleaseVersion, ng.ReleaseVersion) - in.Version = pointer.LateInitializeStringPtr(in.Version, ng.Version) + in.ReleaseVersion = pointer.LateInitialize(in.ReleaseVersion, ng.ReleaseVersion) + in.Version = pointer.LateInitialize(in.Version, ng.Version) // NOTE(hasheddan): we always will set the default Crossplane tags in // practice during initialization in the controller, but we check if no tags // exist for consistency with expected late initialization behavior. diff --git a/pkg/clients/eks/nodegroup_test.go b/pkg/clients/eks/nodegroup_test.go index 0fda237e1a..2780c23965 100644 --- a/pkg/clients/eks/nodegroup_test.go +++ b/pkg/clients/eks/nodegroup_test.go @@ -585,8 +585,8 @@ func TestGenerateUpdateNodeGroupInput(t *testing.T) { SourceSecurityGroups: []string{"cool-group"}, }, ScalingConfig: &manualv1alpha1.NodeGroupScalingConfig{ - MaxSize: pointer.Int32(10), - MinSize: pointer.Int32(6), + MaxSize: pointer.ToIntAsInt32(10), + MinSize: pointer.ToIntAsInt32(6), }, Subnets: []string{"cool-subnet"}, Tags: map[string]string{"cool": "tag"}, @@ -597,9 +597,9 @@ func TestGenerateUpdateNodeGroupInput(t *testing.T) { NodegroupName: &ngName, Labels: map[string]string{"cool": "label"}, ScalingConfig: &ekstypes.NodegroupScalingConfig{ - DesiredSize: pointer.Int32(5), - MaxSize: pointer.Int32(10), - MinSize: pointer.Int32(3), + DesiredSize: pointer.ToIntAsInt32(5), + MaxSize: pointer.ToIntAsInt32(10), + MinSize: pointer.ToIntAsInt32(3), }, }, }, @@ -608,9 +608,9 @@ func TestGenerateUpdateNodeGroupInput(t *testing.T) { Labels: nil, NodegroupName: &ngName, ScalingConfig: &ekstypes.NodegroupScalingConfig{ - DesiredSize: pointer.Int32(6), - MaxSize: pointer.Int32(10), - MinSize: pointer.Int32(6), + DesiredSize: pointer.ToIntAsInt32(6), + MaxSize: pointer.ToIntAsInt32(10), + MinSize: pointer.ToIntAsInt32(6), }, }, }, diff --git a/pkg/clients/elasticache/elasticache.go b/pkg/clients/elasticache/elasticache.go index 4a73524508..0893bbdb00 100644 --- a/pkg/clients/elasticache/elasticache.go +++ b/pkg/clients/elasticache/elasticache.go @@ -98,17 +98,17 @@ func NewCreateReplicationGroupInput(g v1beta1.ReplicationGroupParameters, id str EngineVersion: g.EngineVersion, MultiAZEnabled: g.MultiAZEnabled, NotificationTopicArn: g.NotificationTopicARN, - NumCacheClusters: pointer.Int32Address(g.NumCacheClusters), - NumNodeGroups: pointer.Int32Address(g.NumNodeGroups), - Port: pointer.Int32Address(g.Port), + NumCacheClusters: pointer.ToIntAsInt32Ptr(g.NumCacheClusters), + NumNodeGroups: pointer.ToIntAsInt32Ptr(g.NumNodeGroups), + Port: pointer.ToIntAsInt32Ptr(g.Port), PreferredCacheClusterAZs: g.PreferredCacheClusterAZs, PreferredMaintenanceWindow: g.PreferredMaintenanceWindow, PrimaryClusterId: g.PrimaryClusterID, - ReplicasPerNodeGroup: pointer.Int32Address(g.ReplicasPerNodeGroup), + ReplicasPerNodeGroup: pointer.ToIntAsInt32Ptr(g.ReplicasPerNodeGroup), SecurityGroupIds: g.SecurityGroupIDs, SnapshotArns: g.SnapshotARNs, SnapshotName: g.SnapshotName, - SnapshotRetentionLimit: pointer.Int32Address(g.SnapshotRetentionLimit), + SnapshotRetentionLimit: pointer.ToIntAsInt32Ptr(g.SnapshotRetentionLimit), SnapshotWindow: g.SnapshotWindow, TransitEncryptionEnabled: g.TransitEncryptionEnabled, } @@ -116,8 +116,8 @@ func NewCreateReplicationGroupInput(g v1beta1.ReplicationGroupParameters, id str c.Tags = make([]elasticachetypes.Tag, len(g.Tags)) for i, tag := range g.Tags { c.Tags[i] = elasticachetypes.Tag{ - Key: pointer.String(tag.Key), - Value: pointer.String(tag.Value), + Key: pointer.ToOrNilIfZeroValue(tag.Key), + Value: pointer.ToOrNilIfZeroValue(tag.Value), } } } @@ -127,7 +127,7 @@ func NewCreateReplicationGroupInput(g v1beta1.ReplicationGroupParameters, id str c.NodeGroupConfiguration[i] = elasticachetypes.NodeGroupConfiguration{ PrimaryAvailabilityZone: cfg.PrimaryAvailabilityZone, ReplicaAvailabilityZones: cfg.ReplicaAvailabilityZones, - ReplicaCount: pointer.Int32Address(cfg.ReplicaCount), + ReplicaCount: pointer.ToIntAsInt32Ptr(cfg.ReplicaCount), Slots: cfg.Slots, } } @@ -153,7 +153,7 @@ func NewModifyReplicationGroupInput(g v1beta1.ReplicationGroupParameters, id str PrimaryClusterId: g.PrimaryClusterID, ReplicationGroupDescription: aws.String(g.ReplicationGroupDescription), SecurityGroupIds: g.SecurityGroupIDs, - SnapshotRetentionLimit: pointer.Int32Address(g.SnapshotRetentionLimit), + SnapshotRetentionLimit: pointer.ToIntAsInt32Ptr(g.SnapshotRetentionLimit), SnapshotWindow: g.SnapshotWindow, SnapshottingClusterId: g.SnapshottingClusterID, } @@ -232,28 +232,28 @@ func LateInitialize(s *v1beta1.ReplicationGroupParameters, rg elasticachetypes.R if s == nil { return } - s.AtRestEncryptionEnabled = pointer.LateInitializeBoolPtr(s.AtRestEncryptionEnabled, rg.AtRestEncryptionEnabled) - s.AuthEnabled = pointer.LateInitializeBoolPtr(s.AuthEnabled, rg.AuthTokenEnabled) - s.AutomaticFailoverEnabled = pointer.LateInitializeBoolPtr(s.AutomaticFailoverEnabled, automaticFailoverEnabled(rg.AutomaticFailover)) + s.AtRestEncryptionEnabled = pointer.LateInitialize(s.AtRestEncryptionEnabled, rg.AtRestEncryptionEnabled) + s.AuthEnabled = pointer.LateInitialize(s.AuthEnabled, rg.AuthTokenEnabled) + s.AutomaticFailoverEnabled = pointer.LateInitialize(s.AutomaticFailoverEnabled, automaticFailoverEnabled(rg.AutomaticFailover)) s.SnapshotRetentionLimit = pointer.LateInitializeIntFromInt32Ptr(s.SnapshotRetentionLimit, rg.SnapshotRetentionLimit) - s.SnapshotWindow = pointer.LateInitializeStringPtr(s.SnapshotWindow, rg.SnapshotWindow) - s.SnapshottingClusterID = pointer.LateInitializeStringPtr(s.SnapshottingClusterID, rg.SnapshottingClusterId) - s.TransitEncryptionEnabled = pointer.LateInitializeBoolPtr(s.TransitEncryptionEnabled, rg.TransitEncryptionEnabled) + s.SnapshotWindow = pointer.LateInitialize(s.SnapshotWindow, rg.SnapshotWindow) + s.SnapshottingClusterID = pointer.LateInitialize(s.SnapshottingClusterID, rg.SnapshottingClusterId) + s.TransitEncryptionEnabled = pointer.LateInitialize(s.TransitEncryptionEnabled, rg.TransitEncryptionEnabled) // NOTE(muvaf): ReplicationGroup managed N identical CacheCluster objects. // While configuration of those CacheClusters flow through ReplicationGroup API, // their statuses are fetched independently. Since we check for drifts against // the current state, late-init and up-to-date checks have to be made against // CacheClusters as well. - s.EngineVersion = pointer.LateInitializeStringPtr(s.EngineVersion, cc.EngineVersion) + s.EngineVersion = pointer.LateInitialize(s.EngineVersion, cc.EngineVersion) if cc.CacheParameterGroup != nil { - s.CacheParameterGroupName = pointer.LateInitializeStringPtr(s.CacheParameterGroupName, cc.CacheParameterGroup.CacheParameterGroupName) + s.CacheParameterGroupName = pointer.LateInitialize(s.CacheParameterGroupName, cc.CacheParameterGroup.CacheParameterGroupName) } if cc.NotificationConfiguration != nil { - s.NotificationTopicARN = pointer.LateInitializeStringPtr(s.NotificationTopicARN, cc.NotificationConfiguration.TopicArn) - s.NotificationTopicStatus = pointer.LateInitializeStringPtr(s.NotificationTopicStatus, cc.NotificationConfiguration.TopicStatus) + s.NotificationTopicARN = pointer.LateInitialize(s.NotificationTopicARN, cc.NotificationConfiguration.TopicArn) + s.NotificationTopicStatus = pointer.LateInitialize(s.NotificationTopicStatus, cc.NotificationConfiguration.TopicStatus) } - s.PreferredMaintenanceWindow = pointer.LateInitializeStringPtr(s.PreferredMaintenanceWindow, cc.PreferredMaintenanceWindow) + s.PreferredMaintenanceWindow = pointer.LateInitialize(s.PreferredMaintenanceWindow, cc.PreferredMaintenanceWindow) if len(s.SecurityGroupIDs) == 0 && len(cc.SecurityGroups) != 0 { s.SecurityGroupIDs = make([]string, len(cc.SecurityGroups)) for i, val := range cc.SecurityGroups { @@ -282,7 +282,7 @@ func ReplicationGroupNeedsUpdate(kube v1beta1.ReplicationGroupParameters, rg ela return "AutomaticFailover" case !reflect.DeepEqual(&kube.CacheNodeType, rg.CacheNodeType): return "CacheNotType" - case !reflect.DeepEqual(kube.SnapshotRetentionLimit, pointer.IntFrom32Address(rg.SnapshotRetentionLimit)): + case !reflect.DeepEqual(kube.SnapshotRetentionLimit, pointer.ToInt32FromIntPtr(rg.SnapshotRetentionLimit)): return "SnapshotRetentionLimit" case !reflect.DeepEqual(kube.SnapshotWindow, rg.SnapshotWindow): return "SnapshotWindow" @@ -704,7 +704,7 @@ func GenerateCreateCacheClusterInput(p cachev1alpha1.CacheClusterParameters, id c.Tags = make([]elasticachetypes.Tag, len(p.Tags)) for i, tag := range p.Tags { c.Tags[i] = elasticachetypes.Tag{ - Key: pointer.String(tag.Key), + Key: pointer.ToOrNilIfZeroValue(tag.Key), Value: tag.Value, } } @@ -792,19 +792,19 @@ func IsClusterNotFound(err error) bool { // corresponding fields in CacheClusterParameters in order to let user // know the defaults and make the changes as wished on that value. func LateInitializeCluster(p *cachev1alpha1.CacheClusterParameters, c elasticachetypes.CacheCluster) { - p.SnapshotRetentionLimit = pointer.LateInitializeInt32Ptr(p.SnapshotRetentionLimit, c.SnapshotRetentionLimit) - p.SnapshotWindow = pointer.LateInitializeStringPtr(p.SnapshotWindow, c.SnapshotWindow) - p.CacheSubnetGroupName = pointer.LateInitializeStringPtr(p.CacheSubnetGroupName, c.CacheSubnetGroupName) - p.EngineVersion = pointer.LateInitializeStringPtr(p.EngineVersion, c.EngineVersion) - p.PreferredAvailabilityZone = pointer.LateInitializeStringPtr(p.PreferredAvailabilityZone, c.PreferredAvailabilityZone) - p.PreferredMaintenanceWindow = pointer.LateInitializeStringPtr(p.PreferredMaintenanceWindow, c.PreferredMaintenanceWindow) - p.ReplicationGroupID = pointer.LateInitializeStringPtr(p.ReplicationGroupID, c.ReplicationGroupId) + p.SnapshotRetentionLimit = pointer.LateInitialize(p.SnapshotRetentionLimit, c.SnapshotRetentionLimit) + p.SnapshotWindow = pointer.LateInitialize(p.SnapshotWindow, c.SnapshotWindow) + p.CacheSubnetGroupName = pointer.LateInitialize(p.CacheSubnetGroupName, c.CacheSubnetGroupName) + p.EngineVersion = pointer.LateInitialize(p.EngineVersion, c.EngineVersion) + p.PreferredAvailabilityZone = pointer.LateInitialize(p.PreferredAvailabilityZone, c.PreferredAvailabilityZone) + p.PreferredMaintenanceWindow = pointer.LateInitialize(p.PreferredMaintenanceWindow, c.PreferredMaintenanceWindow) + p.ReplicationGroupID = pointer.LateInitialize(p.ReplicationGroupID, c.ReplicationGroupId) if c.NotificationConfiguration != nil { - p.NotificationTopicARN = pointer.LateInitializeStringPtr(p.NotificationTopicARN, c.NotificationConfiguration.TopicArn) + p.NotificationTopicARN = pointer.LateInitialize(p.NotificationTopicARN, c.NotificationConfiguration.TopicArn) } if c.CacheParameterGroup != nil { - p.CacheParameterGroupName = pointer.LateInitializeStringPtr(p.CacheParameterGroupName, c.CacheParameterGroup.CacheParameterGroupName) + p.CacheParameterGroupName = pointer.LateInitialize(p.CacheParameterGroupName, c.CacheParameterGroup.CacheParameterGroupName) } } diff --git a/pkg/clients/elasticache/elasticache_test.go b/pkg/clients/elasticache/elasticache_test.go index e353a08527..c31a2f97be 100644 --- a/pkg/clients/elasticache/elasticache_test.go +++ b/pkg/clients/elasticache/elasticache_test.go @@ -29,6 +29,7 @@ import ( "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/pkg/errors" + "k8s.io/utils/ptr" cachev1alpha1 "github.com/crossplane-contrib/provider-aws/apis/cache/v1alpha1" "github.com/crossplane-contrib/provider-aws/apis/cache/v1beta1" @@ -158,46 +159,46 @@ func TestNewCreateReplicationGroupInput(t *testing.T) { params: replicationGroupParams(), authToken: &authToken, want: &elasticache.CreateReplicationGroupInput{ - ReplicationGroupId: pointer.String(name, pointer.FieldRequired), - ReplicationGroupDescription: pointer.String(description, pointer.FieldRequired), - Engine: pointer.String(v1beta1.CacheEngineRedis, pointer.FieldRequired), - CacheNodeType: pointer.String(cacheNodeType, pointer.FieldRequired), - AtRestEncryptionEnabled: pointer.Bool(atRestEncryptionEnabled), - AuthToken: pointer.String(authToken), - AutomaticFailoverEnabled: pointer.Bool(autoFailoverEnabled), - CacheParameterGroupName: pointer.String(cacheParameterGroupName), + ReplicationGroupId: ptr.To(name), + ReplicationGroupDescription: ptr.To(description), + Engine: ptr.To(v1beta1.CacheEngineRedis), + CacheNodeType: ptr.To(cacheNodeType), + AtRestEncryptionEnabled: pointer.ToOrNilIfZeroValue(atRestEncryptionEnabled), + AuthToken: pointer.ToOrNilIfZeroValue(authToken), + AutomaticFailoverEnabled: pointer.ToOrNilIfZeroValue(autoFailoverEnabled), + CacheParameterGroupName: pointer.ToOrNilIfZeroValue(cacheParameterGroupName), CacheSecurityGroupNames: cacheSecurityGroupNames, - CacheSubnetGroupName: pointer.String(cacheSubnetGroupName), - EngineVersion: pointer.String(engineVersion), - MultiAZEnabled: pointer.Bool(multiAZ), + CacheSubnetGroupName: pointer.ToOrNilIfZeroValue(cacheSubnetGroupName), + EngineVersion: pointer.ToOrNilIfZeroValue(engineVersion), + MultiAZEnabled: pointer.ToOrNilIfZeroValue(multiAZ), NodeGroupConfiguration: []elasticachetypes.NodeGroupConfiguration{ { - PrimaryAvailabilityZone: pointer.String(nodeGroupPrimaryAZ), + PrimaryAvailabilityZone: pointer.ToOrNilIfZeroValue(nodeGroupPrimaryAZ), ReplicaAvailabilityZones: nodeGroupAZs, - ReplicaCount: pointer.Int32Address(&nodeGroupReplicaCount), - Slots: pointer.String(nodeGroupSlots), + ReplicaCount: pointer.ToIntAsInt32Ptr(&nodeGroupReplicaCount), + Slots: pointer.ToOrNilIfZeroValue(nodeGroupSlots), }, }, - NotificationTopicArn: pointer.String(notificationTopicARN), - NumCacheClusters: pointer.Int32Address(&numCacheClusters), - NumNodeGroups: pointer.Int32Address(&numNodeGroups), - Port: pointer.Int32Address(&port), + NotificationTopicArn: pointer.ToOrNilIfZeroValue(notificationTopicARN), + NumCacheClusters: pointer.ToIntAsInt32Ptr(&numCacheClusters), + NumNodeGroups: pointer.ToIntAsInt32Ptr(&numNodeGroups), + Port: pointer.ToIntAsInt32Ptr(&port), PreferredCacheClusterAZs: preferredCacheClusterAZs, - PreferredMaintenanceWindow: pointer.String(maintenanceWindow), - PrimaryClusterId: pointer.String(primaryClusterID), - ReplicasPerNodeGroup: pointer.Int32Address(&replicasPerNodeGroup), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(maintenanceWindow), + PrimaryClusterId: pointer.ToOrNilIfZeroValue(primaryClusterID), + ReplicasPerNodeGroup: pointer.ToIntAsInt32Ptr(&replicasPerNodeGroup), SecurityGroupIds: securityGroupIDs, SnapshotArns: snapshotARNs, - SnapshotName: pointer.String(snapshotName), - SnapshotRetentionLimit: pointer.Int32Address(&snapshotRetentionLimit), - SnapshotWindow: pointer.String(snapshotWindow), + SnapshotName: pointer.ToOrNilIfZeroValue(snapshotName), + SnapshotRetentionLimit: pointer.ToIntAsInt32Ptr(&snapshotRetentionLimit), + SnapshotWindow: pointer.ToOrNilIfZeroValue(snapshotWindow), Tags: []elasticachetypes.Tag{ { Key: &tagKey, Value: &tagValue, }, }, - TransitEncryptionEnabled: pointer.Bool(transitEncryptionEnabled), + TransitEncryptionEnabled: pointer.ToOrNilIfZeroValue(transitEncryptionEnabled), }, }, { @@ -208,10 +209,10 @@ func TestNewCreateReplicationGroupInput(t *testing.T) { Engine: engine, }, want: &elasticache.CreateReplicationGroupInput{ - ReplicationGroupId: pointer.String(name, pointer.FieldRequired), - ReplicationGroupDescription: pointer.String(description, pointer.FieldRequired), - Engine: pointer.String(engine, pointer.FieldRequired), - CacheNodeType: pointer.String(cacheNodeType, pointer.FieldRequired), + ReplicationGroupId: ptr.To(name), + ReplicationGroupDescription: ptr.To(description), + Engine: ptr.To(engine), + CacheNodeType: ptr.To(cacheNodeType), }, }, } @@ -237,23 +238,23 @@ func TestNewModifyReplicationGroupInput(t *testing.T) { name: "AllPossibleFields", params: replicationGroupParams(), want: &elasticache.ModifyReplicationGroupInput{ - ReplicationGroupId: pointer.String(name, pointer.FieldRequired), + ReplicationGroupId: ptr.To(name), ApplyImmediately: true, - AutomaticFailoverEnabled: pointer.Bool(autoFailoverEnabled), - CacheNodeType: pointer.String(cacheNodeType), - CacheParameterGroupName: pointer.String(cacheParameterGroupName), + AutomaticFailoverEnabled: pointer.ToOrNilIfZeroValue(autoFailoverEnabled), + CacheNodeType: pointer.ToOrNilIfZeroValue(cacheNodeType), + CacheParameterGroupName: pointer.ToOrNilIfZeroValue(cacheParameterGroupName), CacheSecurityGroupNames: cacheSecurityGroupNames, - EngineVersion: pointer.String(engineVersion), - MultiAZEnabled: pointer.Bool(true), - NotificationTopicArn: pointer.String(notificationTopicARN), - NotificationTopicStatus: pointer.String(notificationTopicStatus), - PreferredMaintenanceWindow: pointer.String(maintenanceWindow), - PrimaryClusterId: pointer.String(primaryClusterID), - ReplicationGroupDescription: pointer.String(description), + EngineVersion: pointer.ToOrNilIfZeroValue(engineVersion), + MultiAZEnabled: pointer.ToOrNilIfZeroValue(true), + NotificationTopicArn: pointer.ToOrNilIfZeroValue(notificationTopicARN), + NotificationTopicStatus: pointer.ToOrNilIfZeroValue(notificationTopicStatus), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(maintenanceWindow), + PrimaryClusterId: pointer.ToOrNilIfZeroValue(primaryClusterID), + ReplicationGroupDescription: pointer.ToOrNilIfZeroValue(description), SecurityGroupIds: securityGroupIDs, - SnapshotRetentionLimit: pointer.Int32Address(&snapshotRetentionLimit), - SnapshotWindow: pointer.String(snapshotWindow), - SnapshottingClusterId: pointer.String(snapshottingClusterID), + SnapshotRetentionLimit: pointer.ToIntAsInt32Ptr(&snapshotRetentionLimit), + SnapshotWindow: pointer.ToOrNilIfZeroValue(snapshotWindow), + SnapshottingClusterId: pointer.ToOrNilIfZeroValue(snapshottingClusterID), }, }, { @@ -263,10 +264,10 @@ func TestNewModifyReplicationGroupInput(t *testing.T) { ReplicationGroupDescription: description, }, want: &elasticache.ModifyReplicationGroupInput{ - ApplyImmediately: *pointer.Bool(false, pointer.FieldRequired), - ReplicationGroupId: pointer.String(name, pointer.FieldRequired), - ReplicationGroupDescription: pointer.String(description, pointer.FieldRequired), - CacheNodeType: pointer.String(cacheNodeType, pointer.FieldRequired), + ApplyImmediately: false, + ReplicationGroupId: ptr.To(name), + ReplicationGroupDescription: ptr.To(description), + CacheNodeType: ptr.To(cacheNodeType), }, }, { @@ -277,10 +278,10 @@ func TestNewModifyReplicationGroupInput(t *testing.T) { ReplicationGroupDescription: description, }, want: &elasticache.ModifyReplicationGroupInput{ - ApplyImmediately: *pointer.Bool(false, pointer.FieldRequired), - ReplicationGroupId: pointer.String(name, pointer.FieldRequired), - ReplicationGroupDescription: pointer.String(description, pointer.FieldRequired), - CacheNodeType: pointer.String(cacheNodeType, pointer.FieldRequired), + ApplyImmediately: false, + ReplicationGroupId: ptr.To(name), + ReplicationGroupDescription: ptr.To(description), + CacheNodeType: ptr.To(cacheNodeType), }, }, } @@ -309,14 +310,14 @@ func TestNewModifyReplicationGroupShardConfigurationInput(t *testing.T) { observed: elasticachetypes.ReplicationGroup{ NodeGroups: []elasticachetypes.NodeGroup{ { - NodeGroupId: pointer.String("ng-01"), + NodeGroupId: pointer.ToOrNilIfZeroValue("ng-01"), }, }, }, want: &elasticache.ModifyReplicationGroupShardConfigurationInput{ ApplyImmediately: true, NodeGroupCount: 2, - ReplicationGroupId: pointer.String(name, pointer.FieldRequired), + ReplicationGroupId: ptr.To(name), }, }, { @@ -324,16 +325,16 @@ func TestNewModifyReplicationGroupShardConfigurationInput(t *testing.T) { params: replicationGroupParams(), observed: elasticachetypes.ReplicationGroup{ NodeGroups: []elasticachetypes.NodeGroup{ - {NodeGroupId: pointer.String("ng-01")}, - {NodeGroupId: pointer.String("ng-02")}, - {NodeGroupId: pointer.String("ng-03")}, + {NodeGroupId: pointer.ToOrNilIfZeroValue("ng-01")}, + {NodeGroupId: pointer.ToOrNilIfZeroValue("ng-02")}, + {NodeGroupId: pointer.ToOrNilIfZeroValue("ng-03")}, }, }, want: &elasticache.ModifyReplicationGroupShardConfigurationInput{ ApplyImmediately: true, NodeGroupCount: 2, NodeGroupsToRemove: []string{"ng-01"}, - ReplicationGroupId: pointer.String(name), + ReplicationGroupId: pointer.ToOrNilIfZeroValue(name), }, }, { @@ -344,16 +345,16 @@ func TestNewModifyReplicationGroupShardConfigurationInput(t *testing.T) { }, observed: elasticachetypes.ReplicationGroup{ NodeGroups: []elasticachetypes.NodeGroup{ - {NodeGroupId: pointer.String("ng-01")}, - {NodeGroupId: pointer.String("ng-02")}, - {NodeGroupId: pointer.String("ng-03")}, + {NodeGroupId: pointer.ToOrNilIfZeroValue("ng-01")}, + {NodeGroupId: pointer.ToOrNilIfZeroValue("ng-02")}, + {NodeGroupId: pointer.ToOrNilIfZeroValue("ng-03")}, }, }, want: &elasticache.ModifyReplicationGroupShardConfigurationInput{ ApplyImmediately: false, NodeGroupCount: 2, NodeGroupsToRemove: []string{"ng-01"}, - ReplicationGroupId: pointer.String(name), + ReplicationGroupId: pointer.ToOrNilIfZeroValue(name), }, }, } @@ -376,7 +377,7 @@ func TestNewDeleteReplicationGroupInput(t *testing.T) { }{ { name: "Successful", - want: &elasticache.DeleteReplicationGroupInput{ReplicationGroupId: pointer.String(name, pointer.FieldRequired)}, + want: &elasticache.DeleteReplicationGroupInput{ReplicationGroupId: ptr.To(name)}, }, } @@ -398,7 +399,7 @@ func TestNewDescribeReplicationGroupsInput(t *testing.T) { }{ { name: "Successful", - want: &elasticache.DescribeReplicationGroupsInput{ReplicationGroupId: pointer.String(name, pointer.FieldRequired)}, + want: &elasticache.DescribeReplicationGroupsInput{ReplicationGroupId: ptr.To(name)}, }, } @@ -421,7 +422,7 @@ func TestNewDescribeCacheClustersInput(t *testing.T) { { name: "Successful", cluster: cacheClusterID, - want: &elasticache.DescribeCacheClustersInput{CacheClusterId: pointer.String(cacheClusterID, pointer.FieldRequired)}, + want: &elasticache.DescribeCacheClustersInput{CacheClusterId: ptr.To(cacheClusterID)}, }, } @@ -465,27 +466,27 @@ func TestLateInitialize(t *testing.T) { AtRestEncryptionEnabled: &atRestEncryptionEnabled, AuthTokenEnabled: &authEnabled, AutomaticFailover: elasticachetypes.AutomaticFailoverStatusEnabled, - SnapshotRetentionLimit: pointer.Int32Address(&snapshotRetentionLimit), - SnapshotWindow: pointer.String(snapshotWindow), - SnapshottingClusterId: pointer.String(snapshottingClusterID), + SnapshotRetentionLimit: pointer.ToIntAsInt32Ptr(&snapshotRetentionLimit), + SnapshotWindow: pointer.ToOrNilIfZeroValue(snapshotWindow), + SnapshottingClusterId: pointer.ToOrNilIfZeroValue(snapshottingClusterID), TransitEncryptionEnabled: &transitEncryptionEnabled, }, cc: elasticachetypes.CacheCluster{ - EngineVersion: pointer.String(engineVersion), - CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.String(cacheParameterGroupName)}, + EngineVersion: pointer.ToOrNilIfZeroValue(engineVersion), + CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.ToOrNilIfZeroValue(cacheParameterGroupName)}, NotificationConfiguration: &elasticachetypes.NotificationConfiguration{ - TopicArn: pointer.String(notificationTopicARN), - TopicStatus: pointer.String(notificationTopicStatus), + TopicArn: pointer.ToOrNilIfZeroValue(notificationTopicARN), + TopicStatus: pointer.ToOrNilIfZeroValue(notificationTopicStatus), }, - PreferredMaintenanceWindow: pointer.String(maintenanceWindow), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(maintenanceWindow), SecurityGroups: []elasticachetypes.SecurityGroupMembership{ { - SecurityGroupId: pointer.String(securityGroupIDs[0]), + SecurityGroupId: pointer.ToOrNilIfZeroValue(securityGroupIDs[0]), }, }, CacheSecurityGroups: []elasticachetypes.CacheSecurityGroupMembership{ { - CacheSecurityGroupName: pointer.String(cacheSecurityGroupNames[0]), + CacheSecurityGroupName: pointer.ToOrNilIfZeroValue(cacheSecurityGroupNames[0]), }, }, }, @@ -513,27 +514,27 @@ func TestLateInitialize(t *testing.T) { AtRestEncryptionEnabled: &atRestEncryptionEnabled, AuthTokenEnabled: &authEnabled, AutomaticFailover: elasticachetypes.AutomaticFailoverStatusEnabled, - SnapshotRetentionLimit: pointer.Int32Address(&snapshotRetentionLimit), - SnapshotWindow: pointer.String(snapshotWindow), - SnapshottingClusterId: pointer.String(snapshottingClusterID), + SnapshotRetentionLimit: pointer.ToIntAsInt32Ptr(&snapshotRetentionLimit), + SnapshotWindow: pointer.ToOrNilIfZeroValue(snapshotWindow), + SnapshottingClusterId: pointer.ToOrNilIfZeroValue(snapshottingClusterID), TransitEncryptionEnabled: &transitEncryptionEnabled, }, cc: elasticachetypes.CacheCluster{ - EngineVersion: pointer.String(engineVersion), - CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.String(cacheParameterGroupName)}, + EngineVersion: pointer.ToOrNilIfZeroValue(engineVersion), + CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.ToOrNilIfZeroValue(cacheParameterGroupName)}, NotificationConfiguration: &elasticachetypes.NotificationConfiguration{ - TopicArn: pointer.String(notificationTopicARN), - TopicStatus: pointer.String(notificationTopicStatus), + TopicArn: pointer.ToOrNilIfZeroValue(notificationTopicARN), + TopicStatus: pointer.ToOrNilIfZeroValue(notificationTopicStatus), }, - PreferredMaintenanceWindow: pointer.String(maintenanceWindow), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(maintenanceWindow), SecurityGroups: []elasticachetypes.SecurityGroupMembership{ { - SecurityGroupId: pointer.String(securityGroupIDs[0]), + SecurityGroupId: pointer.ToOrNilIfZeroValue(securityGroupIDs[0]), }, }, CacheSecurityGroups: []elasticachetypes.CacheSecurityGroupMembership{ { - CacheSecurityGroupName: pointer.String(cacheSecurityGroupNames[0]), + CacheSecurityGroupName: pointer.ToOrNilIfZeroValue(cacheSecurityGroupNames[0]), }, }, }, @@ -570,28 +571,28 @@ func TestGenerateObservation(t *testing.T) { automaticFailover := elasticachetypes.AutomaticFailoverStatusEnabled clusterEnabled := true configurationEndpoint := &elasticachetypes.Endpoint{ - Address: pointer.String("istanbul"), + Address: pointer.ToOrNilIfZeroValue("istanbul"), Port: 34, } memberClusters := []string{"member-1", "member-2"} status := "creating" nodeGroups := []elasticachetypes.NodeGroup{ { - NodeGroupId: pointer.String("my-id"), - Slots: pointer.String("special-slots"), - Status: pointer.String("creating"), + NodeGroupId: pointer.ToOrNilIfZeroValue("my-id"), + Slots: pointer.ToOrNilIfZeroValue("special-slots"), + Status: pointer.ToOrNilIfZeroValue("creating"), PrimaryEndpoint: &elasticachetypes.Endpoint{ - Address: pointer.String("random-12"), + Address: pointer.ToOrNilIfZeroValue("random-12"), Port: 124, }, NodeGroupMembers: []elasticachetypes.NodeGroupMember{ { - CacheClusterId: pointer.String("my-cache-cluster"), - CacheNodeId: pointer.String("cluster-0001"), - CurrentRole: pointer.String("secret-role"), - PreferredAvailabilityZone: pointer.String("us-east-1"), + CacheClusterId: pointer.ToOrNilIfZeroValue("my-cache-cluster"), + CacheNodeId: pointer.ToOrNilIfZeroValue("cluster-0001"), + CurrentRole: pointer.ToOrNilIfZeroValue("secret-role"), + PreferredAvailabilityZone: pointer.ToOrNilIfZeroValue("us-east-1"), ReadEndpoint: &elasticachetypes.Endpoint{ - Address: pointer.String("random-1"), + Address: pointer.ToOrNilIfZeroValue("random-1"), Port: 23, }, }, @@ -601,7 +602,7 @@ func TestGenerateObservation(t *testing.T) { percentage := float64(54) rgpmdv := elasticachetypes.ReplicationGroupPendingModifiedValues{ AutomaticFailoverStatus: elasticachetypes.PendingAutomaticFailoverStatusEnabled, - PrimaryClusterId: pointer.String("my-coolest-cluster"), + PrimaryClusterId: pointer.ToOrNilIfZeroValue("my-coolest-cluster"), Resharding: &elasticachetypes.ReshardingStatus{ SlotMigration: &elasticachetypes.SlotMigration{ ProgressPercentage: percentage, @@ -666,7 +667,7 @@ func TestGenerateObservation(t *testing.T) { name: "non-cluster-mode", rg: elasticachetypes.ReplicationGroup{ AutomaticFailover: automaticFailover, - ClusterEnabled: pointer.Bool(false), + ClusterEnabled: pointer.ToOrNilIfZeroValue(false), ConfigurationEndpoint: configurationEndpoint, MemberClusters: memberClusters, Status: &status, @@ -692,7 +693,7 @@ func TestGenerateObservation(t *testing.T) { name: "non-cluster-mode-no-nodes", rg: elasticachetypes.ReplicationGroup{ AutomaticFailover: automaticFailover, - ClusterEnabled: pointer.Bool(false), + ClusterEnabled: pointer.ToOrNilIfZeroValue(false), ConfigurationEndpoint: configurationEndpoint, MemberClusters: memberClusters, Status: &status, @@ -739,7 +740,7 @@ func TestReplicationGroupNeedsUpdate(t *testing.T) { kube: replicationGroupParams(), rg: elasticachetypes.ReplicationGroup{ AutomaticFailover: elasticachetypes.AutomaticFailoverStatusEnabling, - CacheNodeType: pointer.String("n1.insufficiently.cool"), + CacheNodeType: pointer.ToOrNilIfZeroValue("n1.insufficiently.cool"), }, want: true, }, @@ -748,8 +749,8 @@ func TestReplicationGroupNeedsUpdate(t *testing.T) { kube: replicationGroupParams(), rg: elasticachetypes.ReplicationGroup{ AutomaticFailover: elasticachetypes.AutomaticFailoverStatusEnabling, - CacheNodeType: pointer.String(cacheNodeType), - SnapshotRetentionLimit: pointer.Int32Address(&newSnapshotRetentionLimit), + CacheNodeType: pointer.ToOrNilIfZeroValue(cacheNodeType), + SnapshotRetentionLimit: pointer.ToIntAsInt32Ptr(&newSnapshotRetentionLimit), }, want: true, }, @@ -758,9 +759,9 @@ func TestReplicationGroupNeedsUpdate(t *testing.T) { kube: replicationGroupParams(), rg: elasticachetypes.ReplicationGroup{ AutomaticFailover: elasticachetypes.AutomaticFailoverStatusEnabling, - CacheNodeType: pointer.String(cacheNodeType), - SnapshotRetentionLimit: pointer.Int32Address(&snapshotRetentionLimit), - SnapshotWindow: pointer.String("yesterday"), + CacheNodeType: pointer.ToOrNilIfZeroValue(cacheNodeType), + SnapshotRetentionLimit: pointer.ToIntAsInt32Ptr(&snapshotRetentionLimit), + SnapshotWindow: pointer.ToOrNilIfZeroValue("yesterday"), }, want: true, }, @@ -769,13 +770,13 @@ func TestReplicationGroupNeedsUpdate(t *testing.T) { kube: replicationGroupParams(), rg: elasticachetypes.ReplicationGroup{ AutomaticFailover: elasticachetypes.AutomaticFailoverStatusEnabling, - CacheNodeType: pointer.String(cacheNodeType), - SnapshotRetentionLimit: pointer.Int32Address(&snapshotRetentionLimit), - SnapshotWindow: pointer.String(snapshotWindow), + CacheNodeType: pointer.ToOrNilIfZeroValue(cacheNodeType), + SnapshotRetentionLimit: pointer.ToIntAsInt32Ptr(&snapshotRetentionLimit), + SnapshotWindow: pointer.ToOrNilIfZeroValue(snapshotWindow), }, ccList: []elasticachetypes.CacheCluster{ { - EngineVersion: pointer.String("4.0.0"), + EngineVersion: pointer.ToOrNilIfZeroValue("4.0.0"), }, }, want: true, @@ -785,28 +786,28 @@ func TestReplicationGroupNeedsUpdate(t *testing.T) { kube: replicationGroupParams(), rg: elasticachetypes.ReplicationGroup{ AutomaticFailover: elasticachetypes.AutomaticFailoverStatusEnabling, - CacheNodeType: pointer.String(cacheNodeType), + CacheNodeType: pointer.ToOrNilIfZeroValue(cacheNodeType), MultiAZ: elasticachetypes.MultiAZStatusEnabled, - SnapshotRetentionLimit: pointer.Int32Address(&snapshotRetentionLimit), - SnapshotWindow: pointer.String(snapshotWindow), + SnapshotRetentionLimit: pointer.ToIntAsInt32Ptr(&snapshotRetentionLimit), + SnapshotWindow: pointer.ToOrNilIfZeroValue(snapshotWindow), }, ccList: []elasticachetypes.CacheCluster{ { - EngineVersion: pointer.String(engineVersion), - CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.String(cacheParameterGroupName)}, - NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.String(notificationTopicARN), TopicStatus: pointer.String(notificationTopicStatus)}, - PreferredMaintenanceWindow: pointer.String(maintenanceWindow), + EngineVersion: pointer.ToOrNilIfZeroValue(engineVersion), + CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.ToOrNilIfZeroValue(cacheParameterGroupName)}, + NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.ToOrNilIfZeroValue(notificationTopicARN), TopicStatus: pointer.ToOrNilIfZeroValue(notificationTopicStatus)}, + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(maintenanceWindow), SecurityGroups: func() []elasticachetypes.SecurityGroupMembership { ids := make([]elasticachetypes.SecurityGroupMembership, len(securityGroupIDs)) for i, id := range securityGroupIDs { - ids[i] = elasticachetypes.SecurityGroupMembership{SecurityGroupId: pointer.String(id)} + ids[i] = elasticachetypes.SecurityGroupMembership{SecurityGroupId: pointer.ToOrNilIfZeroValue(id)} } return ids }(), CacheSecurityGroups: func() []elasticachetypes.CacheSecurityGroupMembership { names := make([]elasticachetypes.CacheSecurityGroupMembership, len(cacheSecurityGroupNames)) for i, n := range cacheSecurityGroupNames { - names[i] = elasticachetypes.CacheSecurityGroupMembership{CacheSecurityGroupName: pointer.String(n)} + names[i] = elasticachetypes.CacheSecurityGroupMembership{CacheSecurityGroupName: pointer.ToOrNilIfZeroValue(n)} } return names }(), @@ -819,28 +820,28 @@ func TestReplicationGroupNeedsUpdate(t *testing.T) { kube: replicationGroupParams(), rg: elasticachetypes.ReplicationGroup{ AutomaticFailover: elasticachetypes.AutomaticFailoverStatusEnabling, - CacheNodeType: pointer.String(cacheNodeType), + CacheNodeType: pointer.ToOrNilIfZeroValue(cacheNodeType), MultiAZ: elasticachetypes.MultiAZStatusDisabled, // trigger Update - SnapshotRetentionLimit: pointer.Int32Address(&snapshotRetentionLimit), - SnapshotWindow: pointer.String(snapshotWindow), + SnapshotRetentionLimit: pointer.ToIntAsInt32Ptr(&snapshotRetentionLimit), + SnapshotWindow: pointer.ToOrNilIfZeroValue(snapshotWindow), }, ccList: []elasticachetypes.CacheCluster{ { - EngineVersion: pointer.String(engineVersion), - CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.String(cacheParameterGroupName)}, - NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.String(notificationTopicARN), TopicStatus: pointer.String(notificationTopicStatus)}, - PreferredMaintenanceWindow: pointer.String(maintenanceWindow), + EngineVersion: pointer.ToOrNilIfZeroValue(engineVersion), + CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.ToOrNilIfZeroValue(cacheParameterGroupName)}, + NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.ToOrNilIfZeroValue(notificationTopicARN), TopicStatus: pointer.ToOrNilIfZeroValue(notificationTopicStatus)}, + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(maintenanceWindow), SecurityGroups: func() []elasticachetypes.SecurityGroupMembership { ids := make([]elasticachetypes.SecurityGroupMembership, len(securityGroupIDs)) for i, id := range securityGroupIDs { - ids[i] = elasticachetypes.SecurityGroupMembership{SecurityGroupId: pointer.String(id)} + ids[i] = elasticachetypes.SecurityGroupMembership{SecurityGroupId: pointer.ToOrNilIfZeroValue(id)} } return ids }(), CacheSecurityGroups: func() []elasticachetypes.CacheSecurityGroupMembership { names := make([]elasticachetypes.CacheSecurityGroupMembership, len(cacheSecurityGroupNames)) for i, n := range cacheSecurityGroupNames { - names[i] = elasticachetypes.CacheSecurityGroupMembership{CacheSecurityGroupName: pointer.String(n)} + names[i] = elasticachetypes.CacheSecurityGroupMembership{CacheSecurityGroupName: pointer.ToOrNilIfZeroValue(n)} } return names }(), @@ -853,10 +854,10 @@ func TestReplicationGroupNeedsUpdate(t *testing.T) { kube: replicationGroupParams(), rg: elasticachetypes.ReplicationGroup{ AutomaticFailover: elasticachetypes.AutomaticFailoverStatusEnabling, - CacheNodeType: pointer.String(cacheNodeType), + CacheNodeType: pointer.ToOrNilIfZeroValue(cacheNodeType), MultiAZ: elasticachetypes.MultiAZStatusEnabled, - SnapshotRetentionLimit: pointer.Int32Address(&snapshotRetentionLimit), - SnapshotWindow: pointer.String(snapshotWindow), + SnapshotRetentionLimit: pointer.ToIntAsInt32Ptr(&snapshotRetentionLimit), + SnapshotWindow: pointer.ToOrNilIfZeroValue(snapshotWindow), }, ccList: []elasticachetypes.CacheCluster{}, want: true, @@ -930,7 +931,7 @@ func TestCacheClusterNeedsUpdate(t *testing.T) { name: "NeedsNewEngineVersion", kube: replicationGroupParams(), cc: elasticachetypes.CacheCluster{ - EngineVersion: pointer.String("4.0.0"), + EngineVersion: pointer.ToOrNilIfZeroValue("4.0.0"), }, want: true, }, @@ -938,8 +939,8 @@ func TestCacheClusterNeedsUpdate(t *testing.T) { name: "NeedsNewCacheParameterGroup", kube: replicationGroupParams(), cc: elasticachetypes.CacheCluster{ - EngineVersion: pointer.String(engineVersion), - CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.String("okaygroupiguess")}, + EngineVersion: pointer.ToOrNilIfZeroValue(engineVersion), + CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.ToOrNilIfZeroValue("okaygroupiguess")}, }, want: true, }, @@ -947,9 +948,9 @@ func TestCacheClusterNeedsUpdate(t *testing.T) { name: "NeedsNewNotificationTopicARN", kube: replicationGroupParams(), cc: elasticachetypes.CacheCluster{ - EngineVersion: pointer.String(engineVersion), - CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.String(cacheParameterGroupName)}, - NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.String("aws:arn:sqs:nope"), TopicStatus: pointer.String(notificationTopicStatus)}, + EngineVersion: pointer.ToOrNilIfZeroValue(engineVersion), + CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.ToOrNilIfZeroValue(cacheParameterGroupName)}, + NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.ToOrNilIfZeroValue("aws:arn:sqs:nope"), TopicStatus: pointer.ToOrNilIfZeroValue(notificationTopicStatus)}, }, want: true, }, @@ -957,10 +958,10 @@ func TestCacheClusterNeedsUpdate(t *testing.T) { name: "NeedsNewMaintenanceWindow", kube: replicationGroupParams(), cc: elasticachetypes.CacheCluster{ - EngineVersion: pointer.String(engineVersion), - CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.String(cacheParameterGroupName)}, - NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.String(notificationTopicARN), TopicStatus: pointer.String(notificationTopicStatus)}, - PreferredMaintenanceWindow: pointer.String("never!"), + EngineVersion: pointer.ToOrNilIfZeroValue(engineVersion), + CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.ToOrNilIfZeroValue(cacheParameterGroupName)}, + NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.ToOrNilIfZeroValue(notificationTopicARN), TopicStatus: pointer.ToOrNilIfZeroValue(notificationTopicStatus)}, + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue("never!"), }, want: true, }, @@ -968,13 +969,13 @@ func TestCacheClusterNeedsUpdate(t *testing.T) { name: "NeedsNewSecurityGroupIDs", kube: replicationGroupParams(), cc: elasticachetypes.CacheCluster{ - EngineVersion: pointer.String(engineVersion), - CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.String(cacheParameterGroupName)}, - NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.String(notificationTopicARN), TopicStatus: pointer.String(notificationTopicStatus)}, - PreferredMaintenanceWindow: pointer.String(maintenanceWindow), + EngineVersion: pointer.ToOrNilIfZeroValue(engineVersion), + CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.ToOrNilIfZeroValue(cacheParameterGroupName)}, + NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.ToOrNilIfZeroValue(notificationTopicARN), TopicStatus: pointer.ToOrNilIfZeroValue(notificationTopicStatus)}, + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(maintenanceWindow), SecurityGroups: []elasticachetypes.SecurityGroupMembership{ - {SecurityGroupId: pointer.String("notaverysecuregroupid")}, - {SecurityGroupId: pointer.String("evenlesssecuregroupid")}, + {SecurityGroupId: pointer.ToOrNilIfZeroValue("notaverysecuregroupid")}, + {SecurityGroupId: pointer.ToOrNilIfZeroValue("evenlesssecuregroupid")}, }, }, want: true, @@ -983,10 +984,10 @@ func TestCacheClusterNeedsUpdate(t *testing.T) { name: "NeedsSecurityGroupIDs", kube: replicationGroupParams(), cc: elasticachetypes.CacheCluster{ - EngineVersion: pointer.String(engineVersion), - CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.String(cacheParameterGroupName)}, - NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.String(notificationTopicARN), TopicStatus: pointer.String(notificationTopicStatus)}, - PreferredMaintenanceWindow: pointer.String(maintenanceWindow), + EngineVersion: pointer.ToOrNilIfZeroValue(engineVersion), + CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.ToOrNilIfZeroValue(cacheParameterGroupName)}, + NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.ToOrNilIfZeroValue(notificationTopicARN), TopicStatus: pointer.ToOrNilIfZeroValue(notificationTopicStatus)}, + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(maintenanceWindow), }, want: true, }, @@ -994,20 +995,20 @@ func TestCacheClusterNeedsUpdate(t *testing.T) { name: "NeedsNewSecurityGroupNames", kube: replicationGroupParams(), cc: elasticachetypes.CacheCluster{ - EngineVersion: pointer.String(engineVersion), - CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.String(cacheParameterGroupName)}, - NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.String(notificationTopicARN), TopicStatus: pointer.String(notificationTopicStatus)}, - PreferredMaintenanceWindow: pointer.String(maintenanceWindow), + EngineVersion: pointer.ToOrNilIfZeroValue(engineVersion), + CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.ToOrNilIfZeroValue(cacheParameterGroupName)}, + NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.ToOrNilIfZeroValue(notificationTopicARN), TopicStatus: pointer.ToOrNilIfZeroValue(notificationTopicStatus)}, + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(maintenanceWindow), SecurityGroups: func() []elasticachetypes.SecurityGroupMembership { ids := make([]elasticachetypes.SecurityGroupMembership, len(securityGroupIDs)) for i, id := range securityGroupIDs { - ids[i] = elasticachetypes.SecurityGroupMembership{SecurityGroupId: pointer.String(id)} + ids[i] = elasticachetypes.SecurityGroupMembership{SecurityGroupId: pointer.ToOrNilIfZeroValue(id)} } return ids }(), CacheSecurityGroups: []elasticachetypes.CacheSecurityGroupMembership{ - {CacheSecurityGroupName: pointer.String("notaverysecuregroup")}, - {CacheSecurityGroupName: pointer.String("evenlesssecuregroup")}, + {CacheSecurityGroupName: pointer.ToOrNilIfZeroValue("notaverysecuregroup")}, + {CacheSecurityGroupName: pointer.ToOrNilIfZeroValue("evenlesssecuregroup")}, }, }, want: true, @@ -1016,14 +1017,14 @@ func TestCacheClusterNeedsUpdate(t *testing.T) { name: "NeedsSecurityGroupNames", kube: replicationGroupParams(), cc: elasticachetypes.CacheCluster{ - EngineVersion: pointer.String(engineVersion), - CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.String(cacheParameterGroupName)}, - NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.String(notificationTopicARN), TopicStatus: pointer.String(notificationTopicStatus)}, - PreferredMaintenanceWindow: pointer.String(maintenanceWindow), + EngineVersion: pointer.ToOrNilIfZeroValue(engineVersion), + CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.ToOrNilIfZeroValue(cacheParameterGroupName)}, + NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.ToOrNilIfZeroValue(notificationTopicARN), TopicStatus: pointer.ToOrNilIfZeroValue(notificationTopicStatus)}, + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(maintenanceWindow), SecurityGroups: func() []elasticachetypes.SecurityGroupMembership { ids := make([]elasticachetypes.SecurityGroupMembership, len(securityGroupIDs)) for i, id := range securityGroupIDs { - ids[i] = elasticachetypes.SecurityGroupMembership{SecurityGroupId: pointer.String(id)} + ids[i] = elasticachetypes.SecurityGroupMembership{SecurityGroupId: pointer.ToOrNilIfZeroValue(id)} } return ids }(), @@ -1034,21 +1035,21 @@ func TestCacheClusterNeedsUpdate(t *testing.T) { name: "NeedsNoUpdate", kube: replicationGroupParams(), cc: elasticachetypes.CacheCluster{ - EngineVersion: pointer.String(engineVersion), - CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.String(cacheParameterGroupName)}, - NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.String(notificationTopicARN), TopicStatus: pointer.String(notificationTopicStatus)}, - PreferredMaintenanceWindow: pointer.String(maintenanceWindow), + EngineVersion: pointer.ToOrNilIfZeroValue(engineVersion), + CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.ToOrNilIfZeroValue(cacheParameterGroupName)}, + NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.ToOrNilIfZeroValue(notificationTopicARN), TopicStatus: pointer.ToOrNilIfZeroValue(notificationTopicStatus)}, + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(maintenanceWindow), SecurityGroups: func() []elasticachetypes.SecurityGroupMembership { ids := make([]elasticachetypes.SecurityGroupMembership, len(securityGroupIDs)) for i, id := range securityGroupIDs { - ids[i] = elasticachetypes.SecurityGroupMembership{SecurityGroupId: pointer.String(id)} + ids[i] = elasticachetypes.SecurityGroupMembership{SecurityGroupId: pointer.ToOrNilIfZeroValue(id)} } return ids }(), CacheSecurityGroups: func() []elasticachetypes.CacheSecurityGroupMembership { names := make([]elasticachetypes.CacheSecurityGroupMembership, len(cacheSecurityGroupNames)) for i, n := range cacheSecurityGroupNames { - names[i] = elasticachetypes.CacheSecurityGroupMembership{CacheSecurityGroupName: pointer.String(n)} + names[i] = elasticachetypes.CacheSecurityGroupMembership{CacheSecurityGroupName: pointer.ToOrNilIfZeroValue(n)} } return names }(), @@ -1058,25 +1059,25 @@ func TestCacheClusterNeedsUpdate(t *testing.T) { { name: "NeedsNoUpdateNormalizedMaintenanceWindow", kube: replicationGroupParams(func(p *v1beta1.ReplicationGroupParameters) { - p.PreferredMaintenanceWindow = pointer.String("Mon:00:00-Fri:23:59") + p.PreferredMaintenanceWindow = pointer.ToOrNilIfZeroValue("Mon:00:00-Fri:23:59") }), cc: elasticachetypes.CacheCluster{ - EngineVersion: pointer.String(engineVersion), - CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.String(cacheParameterGroupName)}, - NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.String(notificationTopicARN), TopicStatus: pointer.String(notificationTopicStatus)}, - PreferredMaintenanceWindow: pointer.String("mon:00:00-fri:23:59"), + EngineVersion: pointer.ToOrNilIfZeroValue(engineVersion), + CacheParameterGroup: &elasticachetypes.CacheParameterGroupStatus{CacheParameterGroupName: pointer.ToOrNilIfZeroValue(cacheParameterGroupName)}, + NotificationConfiguration: &elasticachetypes.NotificationConfiguration{TopicArn: pointer.ToOrNilIfZeroValue(notificationTopicARN), TopicStatus: pointer.ToOrNilIfZeroValue(notificationTopicStatus)}, + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue("mon:00:00-fri:23:59"), SecurityGroups: func() []elasticachetypes.SecurityGroupMembership { ids := make([]elasticachetypes.SecurityGroupMembership, len(securityGroupIDs)) for i, id := range securityGroupIDs { - ids[i] = elasticachetypes.SecurityGroupMembership{SecurityGroupId: pointer.String(id)} + ids[i] = elasticachetypes.SecurityGroupMembership{SecurityGroupId: pointer.ToOrNilIfZeroValue(id)} } return ids }(), CacheSecurityGroups: func() []elasticachetypes.CacheSecurityGroupMembership { names := make([]elasticachetypes.CacheSecurityGroupMembership, len(cacheSecurityGroupNames)) for i, n := range cacheSecurityGroupNames { - names[i] = elasticachetypes.CacheSecurityGroupMembership{CacheSecurityGroupName: pointer.String(n)} + names[i] = elasticachetypes.CacheSecurityGroupMembership{CacheSecurityGroupName: pointer.ToOrNilIfZeroValue(n)} } return names }(), @@ -1104,9 +1105,9 @@ func TestConnectionEndpoint(t *testing.T) { { name: "ClusterModeEnabled", rg: elasticachetypes.ReplicationGroup{ - ClusterEnabled: pointer.Bool(true), + ClusterEnabled: pointer.ToOrNilIfZeroValue(true), ConfigurationEndpoint: &elasticachetypes.Endpoint{ - Address: pointer.String(host), + Address: pointer.ToOrNilIfZeroValue(host), Port: int32(port), }, }, @@ -1118,7 +1119,7 @@ func TestConnectionEndpoint(t *testing.T) { { name: "ClusterModeEnabledMissingConfigurationEndpoint", rg: elasticachetypes.ReplicationGroup{ - ClusterEnabled: pointer.Bool(true), + ClusterEnabled: pointer.ToOrNilIfZeroValue(true), }, want: nil, }, @@ -1127,7 +1128,7 @@ func TestConnectionEndpoint(t *testing.T) { rg: elasticachetypes.ReplicationGroup{ NodeGroups: []elasticachetypes.NodeGroup{{ PrimaryEndpoint: &elasticachetypes.Endpoint{ - Address: pointer.String(host), + Address: pointer.ToOrNilIfZeroValue(host), Port: int32(port), }}, }, @@ -1171,13 +1172,13 @@ func TestIsSubnetGroupUpToDate(t *testing.T) { "SameFields": { args: args{ subnetGroup: elasticachetypes.CacheSubnetGroup{ - CacheSubnetGroupDescription: pointer.String(subnetGroupDesc), + CacheSubnetGroupDescription: pointer.ToOrNilIfZeroValue(subnetGroupDesc), Subnets: []elasticachetypes.Subnet{ { - SubnetIdentifier: pointer.String(subnetID1), + SubnetIdentifier: pointer.ToOrNilIfZeroValue(subnetID1), }, { - SubnetIdentifier: pointer.String(subnetID2), + SubnetIdentifier: pointer.ToOrNilIfZeroValue(subnetID2), }, }, }, @@ -1191,13 +1192,13 @@ func TestIsSubnetGroupUpToDate(t *testing.T) { "DifferentFields": { args: args{ subnetGroup: elasticachetypes.CacheSubnetGroup{ - CacheSubnetGroupDescription: pointer.String(subnetGroupDesc), + CacheSubnetGroupDescription: pointer.ToOrNilIfZeroValue(subnetGroupDesc), Subnets: []elasticachetypes.Subnet{ { - SubnetIdentifier: pointer.String(subnetID1), + SubnetIdentifier: pointer.ToOrNilIfZeroValue(subnetID1), }, { - SubnetIdentifier: pointer.String(subnetID2), + SubnetIdentifier: pointer.ToOrNilIfZeroValue(subnetID2), }, }, }, @@ -1229,14 +1230,14 @@ func TestVersionMatches(t *testing.T) { }{ { name: "Same value", - kubeVersion: pointer.String("5.0.8"), - awsVersion: pointer.String("5.0.8"), + kubeVersion: pointer.ToOrNilIfZeroValue("5.0.8"), + awsVersion: pointer.ToOrNilIfZeroValue("5.0.8"), want: true, }, { name: "Same pattern", // currently this will never happen, but if it does it should match.. - kubeVersion: pointer.String("6.x"), - awsVersion: pointer.String("6.x"), + kubeVersion: pointer.ToOrNilIfZeroValue("6.x"), + awsVersion: pointer.ToOrNilIfZeroValue("6.x"), want: true, }, { @@ -1248,37 +1249,37 @@ func TestVersionMatches(t *testing.T) { { name: "nil in kubernetes", kubeVersion: nil, - awsVersion: pointer.String("5.0.8"), + awsVersion: pointer.ToOrNilIfZeroValue("5.0.8"), want: false, }, { name: "nil from aws", - kubeVersion: pointer.String("5.0.8"), + kubeVersion: pointer.ToOrNilIfZeroValue("5.0.8"), awsVersion: nil, want: false, }, { name: "mismatch", - kubeVersion: pointer.String("5.0.8"), - awsVersion: pointer.String("5.0.9"), + kubeVersion: pointer.ToOrNilIfZeroValue("5.0.8"), + awsVersion: pointer.ToOrNilIfZeroValue("5.0.9"), want: false, }, { name: "pattern match", - kubeVersion: pointer.String("6.x"), - awsVersion: pointer.String("6.0.5"), + kubeVersion: pointer.ToOrNilIfZeroValue("6.x"), + awsVersion: pointer.ToOrNilIfZeroValue("6.0.5"), want: true, }, { name: "minor match", - kubeVersion: pointer.String("6.2"), - awsVersion: pointer.String("6.2.6"), + kubeVersion: pointer.ToOrNilIfZeroValue("6.2"), + awsVersion: pointer.ToOrNilIfZeroValue("6.2.6"), want: true, }, { name: "zero major mismatch", - kubeVersion: pointer.String("0.2"), - awsVersion: pointer.String("6.2.6"), + kubeVersion: pointer.ToOrNilIfZeroValue("0.2"), + awsVersion: pointer.ToOrNilIfZeroValue("6.2.6"), want: false, }, } @@ -1314,50 +1315,50 @@ func TestParseVersion(t *testing.T) { }, { name: "bad version", - version: pointer.String("badversion"), + version: pointer.ToOrNilIfZeroValue("badversion"), parsed: nil, wantErr: errors.New("major version must be a number"), }, { name: "major only", - version: pointer.String("6"), - parsed: &PartialSemanticVersion{Major: pointer.Int64(6)}, + version: pointer.ToOrNilIfZeroValue("6"), + parsed: &PartialSemanticVersion{Major: ptr.To[int64](6)}, wantErr: nil, }, { name: "major.minor", - version: pointer.String("6.2"), - parsed: &PartialSemanticVersion{Major: pointer.Int64(6), Minor: pointer.Int64(2)}, + version: pointer.ToOrNilIfZeroValue("6.2"), + parsed: &PartialSemanticVersion{Major: ptr.To[int64](6), Minor: ptr.To[int64](2)}, wantErr: nil, }, { name: "major.x", - version: pointer.String("6.x"), - parsed: &PartialSemanticVersion{Major: pointer.Int64(6)}, + version: pointer.ToOrNilIfZeroValue("6.x"), + parsed: &PartialSemanticVersion{Major: ptr.To[int64](6)}, wantErr: nil, }, { name: "major.", - version: pointer.String("6."), - parsed: &PartialSemanticVersion{Major: pointer.Int64(6)}, + version: pointer.ToOrNilIfZeroValue("6."), + parsed: &PartialSemanticVersion{Major: ptr.To[int64](6)}, wantErr: nil, }, { name: "majorLarge.", - version: pointer.String("999."), - parsed: &PartialSemanticVersion{Major: pointer.Int64(999)}, + version: pointer.ToOrNilIfZeroValue("999."), + parsed: &PartialSemanticVersion{Major: ptr.To[int64](999)}, wantErr: nil, }, { name: "major.minor.patch", - version: pointer.String("5.0.9"), - parsed: &PartialSemanticVersion{Major: pointer.Int64(5), Minor: pointer.Int64(0, pointer.FieldRequired), Patch: pointer.Int64(9)}, + version: pointer.ToOrNilIfZeroValue("5.0.9"), + parsed: &PartialSemanticVersion{Major: ptr.To[int64](5), Minor: ptr.To[int64](0), Patch: ptr.To[int64](9)}, wantErr: nil, }, { name: "major.minor.x", - version: pointer.String("5.0.x"), - parsed: &PartialSemanticVersion{Major: pointer.Int64(5), Minor: pointer.Int64(0, pointer.FieldRequired)}, + version: pointer.ToOrNilIfZeroValue("5.0.x"), + parsed: &PartialSemanticVersion{Major: ptr.To[int64](5), Minor: ptr.To[int64](0)}, wantErr: nil, }, } @@ -1456,7 +1457,7 @@ func TestDiffTags(t *testing.T) { {Key: "key2", Value: "val2"}, }, remote: []elasticachetypes.Tag{ - {Key: pointer.String("key"), Value: pointer.String("val")}, + {Key: pointer.ToOrNilIfZeroValue("key"), Value: pointer.ToOrNilIfZeroValue("val")}, }, }, want: want{ @@ -1475,9 +1476,9 @@ func TestDiffTags(t *testing.T) { {Key: "key2", Value: "val2"}, }, remote: []elasticachetypes.Tag{ - {Key: pointer.String("key"), Value: pointer.String("val")}, - {Key: pointer.String("key1"), Value: pointer.String("val1")}, - {Key: pointer.String("key2"), Value: pointer.String("val2")}, + {Key: pointer.ToOrNilIfZeroValue("key"), Value: pointer.ToOrNilIfZeroValue("val")}, + {Key: pointer.ToOrNilIfZeroValue("key1"), Value: pointer.ToOrNilIfZeroValue("val1")}, + {Key: pointer.ToOrNilIfZeroValue("key2"), Value: pointer.ToOrNilIfZeroValue("val2")}, }, }, want: want{ @@ -1488,9 +1489,9 @@ func TestDiffTags(t *testing.T) { "RemoveAll": { args: args{ remote: []elasticachetypes.Tag{ - {Key: pointer.String("key"), Value: pointer.String("val")}, - {Key: pointer.String("key1"), Value: pointer.String("val1")}, - {Key: pointer.String("key2"), Value: pointer.String("val2")}, + {Key: pointer.ToOrNilIfZeroValue("key"), Value: pointer.ToOrNilIfZeroValue("val")}, + {Key: pointer.ToOrNilIfZeroValue("key1"), Value: pointer.ToOrNilIfZeroValue("val1")}, + {Key: pointer.ToOrNilIfZeroValue("key2"), Value: pointer.ToOrNilIfZeroValue("val2")}, }, }, want: want{ @@ -1558,7 +1559,7 @@ func TestReplicationGroupTagsNeedsUpdate(t *testing.T) { {Key: "key2", Value: "val2"}, }, remote: []elasticachetypes.Tag{ - {Key: pointer.String("key"), Value: pointer.String("val")}, + {Key: pointer.ToOrNilIfZeroValue("key"), Value: pointer.ToOrNilIfZeroValue("val")}, }, }, want: want{ @@ -1573,9 +1574,9 @@ func TestReplicationGroupTagsNeedsUpdate(t *testing.T) { {Key: "key2", Value: "val2"}, }, remote: []elasticachetypes.Tag{ - {Key: pointer.String("key"), Value: pointer.String("val")}, - {Key: pointer.String("key1"), Value: pointer.String("val1")}, - {Key: pointer.String("key2"), Value: pointer.String("val2")}, + {Key: pointer.ToOrNilIfZeroValue("key"), Value: pointer.ToOrNilIfZeroValue("val")}, + {Key: pointer.ToOrNilIfZeroValue("key1"), Value: pointer.ToOrNilIfZeroValue("val1")}, + {Key: pointer.ToOrNilIfZeroValue("key2"), Value: pointer.ToOrNilIfZeroValue("val2")}, }, }, want: want{ @@ -1589,8 +1590,8 @@ func TestReplicationGroupTagsNeedsUpdate(t *testing.T) { {Key: "key2", Value: "val2"}, }, remote: []elasticachetypes.Tag{ - {Key: pointer.String("key1"), Value: pointer.String("val1")}, - {Key: pointer.String("key2"), Value: pointer.String("val2")}, + {Key: pointer.ToOrNilIfZeroValue("key1"), Value: pointer.ToOrNilIfZeroValue("val1")}, + {Key: pointer.ToOrNilIfZeroValue("key2"), Value: pointer.ToOrNilIfZeroValue("val2")}, }, }, want: want{ @@ -1609,9 +1610,9 @@ func TestReplicationGroupTagsNeedsUpdate(t *testing.T) { "RemoveAll": { args: args{ remote: []elasticachetypes.Tag{ - {Key: pointer.String("key"), Value: pointer.String("val")}, - {Key: pointer.String("key1"), Value: pointer.String("val1")}, - {Key: pointer.String("key2"), Value: pointer.String("val2")}, + {Key: pointer.ToOrNilIfZeroValue("key"), Value: pointer.ToOrNilIfZeroValue("val")}, + {Key: pointer.ToOrNilIfZeroValue("key1"), Value: pointer.ToOrNilIfZeroValue("val1")}, + {Key: pointer.ToOrNilIfZeroValue("key2"), Value: pointer.ToOrNilIfZeroValue("val2")}, }, }, want: want{ @@ -1649,7 +1650,7 @@ func TestReplicationGroupNumCacheClustersNeedsUpdate(t *testing.T) { NumCacheClusters: &numCacheClusters, }, ccList: []elasticachetypes.CacheCluster{ - {EngineVersion: pointer.String(engineVersion)}, + {EngineVersion: pointer.ToOrNilIfZeroValue(engineVersion)}, }, }, want: want{res: false}, @@ -1660,7 +1661,7 @@ func TestReplicationGroupNumCacheClustersNeedsUpdate(t *testing.T) { NumCacheClusters: &numCacheClusters5, }, ccList: []elasticachetypes.CacheCluster{ - {EngineVersion: pointer.String(engineVersion)}, + {EngineVersion: pointer.ToOrNilIfZeroValue(engineVersion)}, }, }, want: want{res: true}, @@ -1676,7 +1677,7 @@ func TestReplicationGroupNumCacheClustersNeedsUpdate(t *testing.T) { args: args{ kube: v1beta1.ReplicationGroupParameters{}, ccList: []elasticachetypes.CacheCluster{ - {EngineVersion: pointer.String(engineVersion)}, + {EngineVersion: pointer.ToOrNilIfZeroValue(engineVersion)}, }, }, want: want{res: false}, diff --git a/pkg/clients/elasticache/elasticcachecluster_test.go b/pkg/clients/elasticache/elasticcachecluster_test.go index 3974bad4bb..341327420e 100644 --- a/pkg/clients/elasticache/elasticcachecluster_test.go +++ b/pkg/clients/elasticache/elasticcachecluster_test.go @@ -44,14 +44,14 @@ var ( func clusterParams(m ...func(*v1alpha1.CacheClusterParameters)) *v1alpha1.CacheClusterParameters { o := &v1alpha1.CacheClusterParameters{ CacheNodeType: nodeType, - CacheSubnetGroupName: pointer.String(subnetGroup), - Engine: pointer.String(redisEngine), + CacheSubnetGroupName: pointer.ToOrNilIfZeroValue(subnetGroup), + Engine: pointer.ToOrNilIfZeroValue(redisEngine), NumCacheNodes: 2, - PreferredAvailabilityZone: pointer.String(az), - PreferredMaintenanceWindow: pointer.String(friday), - ReplicationGroupID: pointer.String(replicationGroupID), - SnapshotRetentionLimit: pointer.Int32(5), - SnapshotWindow: pointer.String(timeWindow), + PreferredAvailabilityZone: pointer.ToOrNilIfZeroValue(az), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(friday), + ReplicationGroupID: pointer.ToOrNilIfZeroValue(replicationGroupID), + SnapshotRetentionLimit: pointer.ToIntAsInt32(5), + SnapshotWindow: pointer.ToOrNilIfZeroValue(timeWindow), } for _, f := range m { @@ -65,17 +65,17 @@ func cluster(m ...func(*awscachetypes.CacheCluster)) *awscachetypes.CacheCluster o := &awscachetypes.CacheCluster{ AtRestEncryptionEnabled: &boolTrue, AuthTokenEnabled: &boolTrue, - CacheClusterStatus: pointer.String(v1alpha1.StatusAvailable), - CacheClusterId: pointer.String(clusterID), - CacheNodeType: pointer.String(nodeType), - CacheSubnetGroupName: pointer.String(subnetGroup), - Engine: pointer.String(redisEngine), - NumCacheNodes: pointer.Int32(2), - PreferredMaintenanceWindow: pointer.String(friday), - PreferredAvailabilityZone: pointer.String(az), - ReplicationGroupId: pointer.String(replicationGroupID), - SnapshotWindow: pointer.String(timeWindow), - SnapshotRetentionLimit: pointer.Int32(5), + CacheClusterStatus: pointer.ToOrNilIfZeroValue(v1alpha1.StatusAvailable), + CacheClusterId: pointer.ToOrNilIfZeroValue(clusterID), + CacheNodeType: pointer.ToOrNilIfZeroValue(nodeType), + CacheSubnetGroupName: pointer.ToOrNilIfZeroValue(subnetGroup), + Engine: pointer.ToOrNilIfZeroValue(redisEngine), + NumCacheNodes: pointer.ToIntAsInt32(2), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(friday), + PreferredAvailabilityZone: pointer.ToOrNilIfZeroValue(az), + ReplicationGroupId: pointer.ToOrNilIfZeroValue(replicationGroupID), + SnapshotWindow: pointer.ToOrNilIfZeroValue(timeWindow), + SnapshotRetentionLimit: pointer.ToIntAsInt32(5), } for _, f := range m { @@ -118,7 +118,7 @@ func TestLateInitializeCluster(t *testing.T) { in: *cluster(), }, want: clusterParams(func(p *v1alpha1.CacheClusterParameters) { - p.ReplicationGroupID = pointer.String(replicationGroupID) + p.ReplicationGroupID = pointer.ToOrNilIfZeroValue(replicationGroupID) }), }, } @@ -142,15 +142,15 @@ func TestGenerateCreateCacheClusterInput(t *testing.T) { in: *clusterParams(), out: awscache.CreateCacheClusterInput{ CacheClusterId: &clusterID, - CacheNodeType: pointer.String(nodeType), - CacheSubnetGroupName: pointer.String(subnetGroup), - Engine: pointer.String(redisEngine), - NumCacheNodes: pointer.Int32(2), - PreferredAvailabilityZone: pointer.String(az), - PreferredMaintenanceWindow: pointer.String(friday), - ReplicationGroupId: pointer.String(replicationGroupID), - SnapshotRetentionLimit: pointer.Int32(5), - SnapshotWindow: pointer.String(timeWindow), + CacheNodeType: pointer.ToOrNilIfZeroValue(nodeType), + CacheSubnetGroupName: pointer.ToOrNilIfZeroValue(subnetGroup), + Engine: pointer.ToOrNilIfZeroValue(redisEngine), + NumCacheNodes: pointer.ToIntAsInt32(2), + PreferredAvailabilityZone: pointer.ToOrNilIfZeroValue(az), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(friday), + ReplicationGroupId: pointer.ToOrNilIfZeroValue(replicationGroupID), + SnapshotRetentionLimit: pointer.ToIntAsInt32(5), + SnapshotWindow: pointer.ToOrNilIfZeroValue(timeWindow), }, }, } @@ -174,11 +174,11 @@ func TestGenerateModifyCacheClusterInput(t *testing.T) { in: *clusterParams(), out: awscache.ModifyCacheClusterInput{ CacheClusterId: &clusterID, - CacheNodeType: pointer.String(nodeType), - NumCacheNodes: pointer.Int32(2), - PreferredMaintenanceWindow: pointer.String(friday), - SnapshotRetentionLimit: pointer.Int32(5), - SnapshotWindow: pointer.String(timeWindow), + CacheNodeType: pointer.ToOrNilIfZeroValue(nodeType), + NumCacheNodes: pointer.ToIntAsInt32(2), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(friday), + SnapshotRetentionLimit: pointer.ToIntAsInt32(5), + SnapshotWindow: pointer.ToOrNilIfZeroValue(timeWindow), }, }, } @@ -248,7 +248,7 @@ func TestGenerateClusterObservation(t *testing.T) { in: *cluster(func(c *awscachetypes.CacheCluster) { c.CacheNodes = []awscachetypes.CacheNode{ { - CacheNodeStatus: pointer.String(v1alpha1.StatusAvailable), + CacheNodeStatus: pointer.ToOrNilIfZeroValue(v1alpha1.StatusAvailable), }, } }), diff --git a/pkg/clients/elasticloadbalancing/elb/elb.go b/pkg/clients/elasticloadbalancing/elb/elb.go index 2d22e918f1..4d700261bd 100644 --- a/pkg/clients/elasticloadbalancing/elb/elb.go +++ b/pkg/clients/elasticloadbalancing/elb/elb.go @@ -82,7 +82,7 @@ func LateInitializeELB(in *v1alpha1.ELBParameters, v *elbtypes.LoadBalancerDescr return } - in.Scheme = pointer.LateInitializeStringPtr(in.Scheme, v.Scheme) + in.Scheme = pointer.LateInitialize(in.Scheme, v.Scheme) if len(in.AvailabilityZones) == 0 && len(v.AvailabilityZones) != 0 { in.AvailabilityZones = v.AvailabilityZones diff --git a/pkg/clients/hostedzone/hostedzone.go b/pkg/clients/hostedzone/hostedzone.go index 3b9e3535d7..64b177edec 100644 --- a/pkg/clients/hostedzone/hostedzone.go +++ b/pkg/clients/hostedzone/hostedzone.go @@ -83,8 +83,8 @@ func AreTagsUpToDate(spec map[string]string, obs []route53types.Tag) ([]route53t addedTags := make([]route53types.Tag, 0, len(added)) for k, v := range added { addedTags = append(addedTags, route53types.Tag{ - Key: pointer.String(k), - Value: pointer.String(v), + Key: pointer.ToOrNilIfZeroValue(k), + Value: pointer.ToOrNilIfZeroValue(v), }) } return addedTags, removed, len(addedTags) == 0 && len(removed) == 0 @@ -97,14 +97,14 @@ func LateInitialize(spec *v1alpha1.HostedZoneParameters, obs *route53.GetHostedZ return } if obs.DelegationSet != nil { - spec.DelegationSetID = pointer.LateInitializeStringPtr(spec.DelegationSetID, obs.DelegationSet.Id) + spec.DelegationSetID = pointer.LateInitialize(spec.DelegationSetID, obs.DelegationSet.Id) } if spec.Config == nil && obs.HostedZone != nil { spec.Config = &v1alpha1.Config{} } if spec.Config != nil && obs.HostedZone.Config != nil { - spec.Config.Comment = pointer.LateInitializeStringPtr(spec.Config.Comment, obs.HostedZone.Config.Comment) - spec.Config.PrivateZone = pointer.LateInitializeBoolPtr(spec.Config.PrivateZone, &obs.HostedZone.Config.PrivateZone) + spec.Config.Comment = pointer.LateInitialize(spec.Config.Comment, obs.HostedZone.Config.Comment) + spec.Config.PrivateZone = pointer.LateInitialize(spec.Config.PrivateZone, &obs.HostedZone.Config.PrivateZone) } } diff --git a/pkg/clients/iam/role.go b/pkg/clients/iam/role.go index 744273518e..ed061d1331 100644 --- a/pkg/clients/iam/role.go +++ b/pkg/clients/iam/role.go @@ -115,13 +115,13 @@ func LateInitializeRole(in *v1beta1.RoleParameters, role *iamtypes.Role) { if role == nil { return } - in.AssumeRolePolicyDocument = pointer.LateInitializeString(in.AssumeRolePolicyDocument, role.AssumeRolePolicyDocument) - in.Description = pointer.LateInitializeStringPtr(in.Description, role.Description) - in.MaxSessionDuration = pointer.LateInitializeInt32Ptr(in.MaxSessionDuration, role.MaxSessionDuration) - in.Path = pointer.LateInitializeStringPtr(in.Path, role.Path) + in.AssumeRolePolicyDocument = pointer.LateInitializeValueFromPtr(in.AssumeRolePolicyDocument, role.AssumeRolePolicyDocument) + in.Description = pointer.LateInitialize(in.Description, role.Description) + in.MaxSessionDuration = pointer.LateInitialize(in.MaxSessionDuration, role.MaxSessionDuration) + in.Path = pointer.LateInitialize(in.Path, role.Path) if role.PermissionsBoundary != nil { - in.PermissionsBoundary = pointer.LateInitializeStringPtr(in.PermissionsBoundary, role.PermissionsBoundary.PermissionsBoundaryArn) + in.PermissionsBoundary = pointer.LateInitialize(in.PermissionsBoundary, role.PermissionsBoundary.PermissionsBoundaryArn) } if in.Tags == nil && role.Tags != nil { diff --git a/pkg/clients/iam/role_test.go b/pkg/clients/iam/role_test.go index 5bf2474a71..0e9e472406 100644 --- a/pkg/clients/iam/role_test.go +++ b/pkg/clients/iam/role_test.go @@ -56,7 +56,7 @@ func roleParams(m ...func(*v1beta1.RoleParameters)) *v1beta1.RoleParameters { o := &v1beta1.RoleParameters{ Description: &description, AssumeRolePolicyDocument: assumeRolePolicyDocument, - MaxSessionDuration: pointer.Int32(1), + MaxSessionDuration: pointer.ToIntAsInt32(1), } for _, f := range m { @@ -78,7 +78,7 @@ func role(m ...func(*iamtypes.Role)) *iamtypes.Role { o := &iamtypes.Role{ Description: &description, AssumeRolePolicyDocument: &assumeRolePolicyDocument, - MaxSessionDuration: pointer.Int32(1), + MaxSessionDuration: pointer.ToIntAsInt32(1), } for _, f := range m { @@ -89,8 +89,8 @@ func role(m ...func(*iamtypes.Role)) *iamtypes.Role { } func addRoleOutputFields(r *iamtypes.Role) { - r.Arn = pointer.String(roleARN) - r.RoleId = pointer.String(roleID) + r.Arn = pointer.ToOrNilIfZeroValue(roleARN) + r.RoleId = pointer.ToOrNilIfZeroValue(roleID) } func roleObservation(m ...func(*v1beta1.RoleExternalStatus)) *v1beta1.RoleExternalStatus { @@ -114,10 +114,10 @@ func TestGenerateCreateRoleInput(t *testing.T) { "FilledInput": { in: *roleParams(), out: iam.CreateRoleInput{ - RoleName: pointer.String(roleName), + RoleName: pointer.ToOrNilIfZeroValue(roleName), Description: &description, - AssumeRolePolicyDocument: pointer.String(assumeRolePolicyDocument), - MaxSessionDuration: pointer.Int32(1), + AssumeRolePolicyDocument: pointer.ToOrNilIfZeroValue(assumeRolePolicyDocument), + MaxSessionDuration: pointer.ToIntAsInt32(1), }, }, } @@ -250,18 +250,18 @@ func TestIsRoleUpToDate(t *testing.T) { role: iamtypes.Role{ AssumeRolePolicyDocument: escapedPolicyJSON(), Description: &description, - MaxSessionDuration: pointer.Int32(1), - Path: pointer.String("/"), + MaxSessionDuration: pointer.ToIntAsInt32(1), + Path: pointer.ToOrNilIfZeroValue("/"), Tags: []iamtypes.Tag{{ - Key: pointer.String("key1"), - Value: pointer.String("value1"), + Key: pointer.ToOrNilIfZeroValue("key1"), + Value: pointer.ToOrNilIfZeroValue("value1"), }}, }, p: v1beta1.RoleParameters{ Description: &description, AssumeRolePolicyDocument: assumeRolePolicyDocument, - MaxSessionDuration: pointer.Int32(1), - Path: pointer.String("/"), + MaxSessionDuration: pointer.ToIntAsInt32(1), + Path: pointer.ToOrNilIfZeroValue("/"), Tags: []v1beta1.Tag{{ Key: "key1", Value: "value1", @@ -276,14 +276,14 @@ func TestIsRoleUpToDate(t *testing.T) { role: iamtypes.Role{ AssumeRolePolicyDocument: escapedPolicyJSON(), Description: &description, - MaxSessionDuration: pointer.Int32(1), - Path: pointer.String("/"), + MaxSessionDuration: pointer.ToIntAsInt32(1), + Path: pointer.ToOrNilIfZeroValue("/"), }, p: v1beta1.RoleParameters{ Description: &description, AssumeRolePolicyDocument: assumeRolePolicyDocument2, - MaxSessionDuration: pointer.Int32(1), - Path: pointer.String("/"), + MaxSessionDuration: pointer.ToIntAsInt32(1), + Path: pointer.ToOrNilIfZeroValue("/"), }, }, want: false, @@ -297,18 +297,18 @@ observed assume role policy: %7B%22Version%22%3A%222012-10-17%22%2C%22Statement% role: iamtypes.Role{ AssumeRolePolicyDocument: &assumeRolePolicyDocument, Description: &description, - MaxSessionDuration: pointer.Int32(1), - Path: pointer.String("//"), + MaxSessionDuration: pointer.ToIntAsInt32(1), + Path: pointer.ToOrNilIfZeroValue("//"), Tags: []iamtypes.Tag{{ - Key: pointer.String("key1"), - Value: pointer.String("value1"), + Key: pointer.ToOrNilIfZeroValue("key1"), + Value: pointer.ToOrNilIfZeroValue("value1"), }}, }, p: v1beta1.RoleParameters{ Description: &description, AssumeRolePolicyDocument: assumeRolePolicyDocument, - MaxSessionDuration: pointer.Int32(1), - Path: pointer.String("/"), + MaxSessionDuration: pointer.ToIntAsInt32(1), + Path: pointer.ToOrNilIfZeroValue("/"), Tags: []v1beta1.Tag{{ Key: "key1", Value: "value1", diff --git a/pkg/clients/iam/user.go b/pkg/clients/iam/user.go index 9c6beca277..bcbd30ab57 100644 --- a/pkg/clients/iam/user.go +++ b/pkg/clients/iam/user.go @@ -35,9 +35,9 @@ func LateInitializeUser(in *v1beta1.UserParameters, user *iamtypes.User) { return } - in.Path = pointer.LateInitializeStringPtr(in.Path, user.Path) + in.Path = pointer.LateInitialize(in.Path, user.Path) if user.PermissionsBoundary != nil { - in.PermissionsBoundary = pointer.LateInitializeStringPtr(in.PermissionsBoundary, user.PermissionsBoundary.PermissionsBoundaryArn) + in.PermissionsBoundary = pointer.LateInitialize(in.PermissionsBoundary, user.PermissionsBoundary.PermissionsBoundaryArn) } if in.Tags == nil && user.Tags != nil { diff --git a/pkg/clients/rds/dbinstance.go b/pkg/clients/rds/dbinstance.go index 67cc9249d8..bb09d244b4 100644 --- a/pkg/clients/rds/dbinstance.go +++ b/pkg/clients/rds/dbinstance.go @@ -40,7 +40,7 @@ func GenerateRestoreDBInstanceFromS3Input(name, password string, p *v1alpha1.DBI DBInstanceClass: p.DBInstanceClass, DBName: p.DBName, DBParameterGroupName: p.DBParameterGroupName, - DBSecurityGroups: pointer.StringSliceToPtr(p.DBSecurityGroups), + DBSecurityGroups: pointer.SliceValueToPtr(p.DBSecurityGroups), DBSubnetGroupName: p.DBSubnetGroupName, DeletionProtection: p.DeletionProtection, EnableCloudwatchLogsExports: p.EnableCloudwatchLogsExports, @@ -51,7 +51,7 @@ func GenerateRestoreDBInstanceFromS3Input(name, password string, p *v1alpha1.DBI Iops: p.IOPS, KmsKeyId: p.KMSKeyID, LicenseModel: p.LicenseModel, - MasterUserPassword: pointer.String(password), + MasterUserPassword: pointer.ToOrNilIfZeroValue(password), MasterUsername: p.MasterUsername, MonitoringInterval: p.MonitoringInterval, MonitoringRoleArn: p.MonitoringRoleARN, @@ -70,7 +70,7 @@ func GenerateRestoreDBInstanceFromS3Input(name, password string, p *v1alpha1.DBI SourceEngineVersion: p.RestoreFrom.S3.SourceEngineVersion, StorageEncrypted: p.StorageEncrypted, StorageType: p.StorageType, - VpcSecurityGroupIds: pointer.StringSliceToPtr(p.VPCSecurityGroupIDs), + VpcSecurityGroupIds: pointer.SliceValueToPtr(p.VPCSecurityGroupIDs), } if len(p.ProcessorFeatures) != 0 { c.ProcessorFeatures = make([]*svcsdk.ProcessorFeature, len(p.ProcessorFeatures)) @@ -118,7 +118,7 @@ func GenerateRestoreDBInstanceFromSnapshotInput(name string, p *v1alpha1.DBInsta Port: p.Port, PubliclyAccessible: p.PubliclyAccessible, StorageType: p.StorageType, - VpcSecurityGroupIds: pointer.StringSliceToPtr(p.VPCSecurityGroupIDs), + VpcSecurityGroupIds: pointer.SliceValueToPtr(p.VPCSecurityGroupIDs), } if len(p.ProcessorFeatures) != 0 { c.ProcessorFeatures = make([]*svcsdk.ProcessorFeature, len(p.ProcessorFeatures)) @@ -171,7 +171,7 @@ func GenerateRestoreDBInstanceToPointInTimeInput(name string, p *v1alpha1.DBInst Port: p.Port, PubliclyAccessible: p.PubliclyAccessible, StorageType: p.StorageType, - VpcSecurityGroupIds: pointer.StringSliceToPtr(p.VPCSecurityGroupIDs), + VpcSecurityGroupIds: pointer.SliceValueToPtr(p.VPCSecurityGroupIDs), TargetDBInstanceIdentifier: aws.String(name), RestoreTime: restoreTime, diff --git a/pkg/clients/redshift/redshift.go b/pkg/clients/redshift/redshift.go index a29b59aad8..0b20e64408 100644 --- a/pkg/clients/redshift/redshift.go +++ b/pkg/clients/redshift/redshift.go @@ -55,23 +55,23 @@ func LateInitialize(in *v1alpha1.ClusterParameters, cl *redshifttypes.Cluster) { if cl == nil { return } - in.AllowVersionUpgrade = pointer.LateInitializeBoolPtr(in.AllowVersionUpgrade, &cl.AllowVersionUpgrade) - in.AutomatedSnapshotRetentionPeriod = pointer.LateInitializeInt32Ptr(in.AutomatedSnapshotRetentionPeriod, &cl.AutomatedSnapshotRetentionPeriod) - in.AvailabilityZone = pointer.LateInitializeStringPtr(in.AvailabilityZone, cl.AvailabilityZone) - in.ClusterVersion = pointer.LateInitializeStringPtr(in.ClusterVersion, cl.ClusterVersion) - in.ClusterSubnetGroupName = pointer.LateInitializeStringPtr(in.ClusterSubnetGroupName, cl.ClusterSubnetGroupName) - in.DBName = pointer.LateInitializeStringPtr(in.DBName, cl.DBName) - in.Encrypted = pointer.LateInitializeBoolPtr(in.Encrypted, &cl.Encrypted) - in.EnhancedVPCRouting = pointer.LateInitializeBoolPtr(in.EnhancedVPCRouting, &cl.EnhancedVpcRouting) - in.KMSKeyID = pointer.LateInitializeStringPtr(in.KMSKeyID, cl.KmsKeyId) - in.MaintenanceTrackName = pointer.LateInitializeStringPtr(in.MaintenanceTrackName, cl.MaintenanceTrackName) - in.ManualSnapshotRetentionPeriod = pointer.LateInitializeInt32Ptr(in.ManualSnapshotRetentionPeriod, &cl.ManualSnapshotRetentionPeriod) - in.MasterUsername = pointer.LateInitializeString(in.MasterUsername, cl.MasterUsername) - in.NodeType = pointer.LateInitializeString(in.NodeType, cl.NodeType) - in.NumberOfNodes = pointer.LateInitializeInt32Ptr(in.NumberOfNodes, &cl.NumberOfNodes) - in.PreferredMaintenanceWindow = pointer.LateInitializeStringPtr(in.PreferredMaintenanceWindow, cl.PreferredMaintenanceWindow) - in.PubliclyAccessible = pointer.LateInitializeBoolPtr(in.PubliclyAccessible, &cl.PubliclyAccessible) - in.SnapshotScheduleIdentifier = pointer.LateInitializeStringPtr(in.SnapshotScheduleIdentifier, cl.SnapshotScheduleIdentifier) + in.AllowVersionUpgrade = pointer.LateInitialize(in.AllowVersionUpgrade, &cl.AllowVersionUpgrade) + in.AutomatedSnapshotRetentionPeriod = pointer.LateInitialize(in.AutomatedSnapshotRetentionPeriod, &cl.AutomatedSnapshotRetentionPeriod) + in.AvailabilityZone = pointer.LateInitialize(in.AvailabilityZone, cl.AvailabilityZone) + in.ClusterVersion = pointer.LateInitialize(in.ClusterVersion, cl.ClusterVersion) + in.ClusterSubnetGroupName = pointer.LateInitialize(in.ClusterSubnetGroupName, cl.ClusterSubnetGroupName) + in.DBName = pointer.LateInitialize(in.DBName, cl.DBName) + in.Encrypted = pointer.LateInitialize(in.Encrypted, &cl.Encrypted) + in.EnhancedVPCRouting = pointer.LateInitialize(in.EnhancedVPCRouting, &cl.EnhancedVpcRouting) + in.KMSKeyID = pointer.LateInitialize(in.KMSKeyID, cl.KmsKeyId) + in.MaintenanceTrackName = pointer.LateInitialize(in.MaintenanceTrackName, cl.MaintenanceTrackName) + in.ManualSnapshotRetentionPeriod = pointer.LateInitialize(in.ManualSnapshotRetentionPeriod, &cl.ManualSnapshotRetentionPeriod) + in.MasterUsername = pointer.LateInitializeValueFromPtr(in.MasterUsername, cl.MasterUsername) + in.NodeType = pointer.LateInitializeValueFromPtr(in.NodeType, cl.NodeType) + in.NumberOfNodes = pointer.LateInitialize(in.NumberOfNodes, &cl.NumberOfNodes) + in.PreferredMaintenanceWindow = pointer.LateInitialize(in.PreferredMaintenanceWindow, cl.PreferredMaintenanceWindow) + in.PubliclyAccessible = pointer.LateInitialize(in.PubliclyAccessible, &cl.PubliclyAccessible) + in.SnapshotScheduleIdentifier = pointer.LateInitialize(in.SnapshotScheduleIdentifier, cl.SnapshotScheduleIdentifier) // If ClusterType is not provided by the user then set it to it's default value. // As redshift.Cluster type doesn't hold this info. @@ -84,14 +84,14 @@ func LateInitialize(in *v1alpha1.ClusterParameters, cl *redshifttypes.Cluster) { } } if cl.Endpoint != nil { - in.Port = pointer.LateInitializeInt32Ptr(in.Port, &cl.Endpoint.Port) + in.Port = pointer.LateInitialize(in.Port, &cl.Endpoint.Port) } if cl.HsmStatus != nil { - in.HSMClientCertificateIdentifier = pointer.LateInitializeStringPtr(in.HSMClientCertificateIdentifier, cl.HsmStatus.HsmClientCertificateIdentifier) - in.HSMConfigurationIdentifier = pointer.LateInitializeStringPtr(in.HSMConfigurationIdentifier, cl.HsmStatus.HsmConfigurationIdentifier) + in.HSMClientCertificateIdentifier = pointer.LateInitialize(in.HSMClientCertificateIdentifier, cl.HsmStatus.HsmClientCertificateIdentifier) + in.HSMConfigurationIdentifier = pointer.LateInitialize(in.HSMConfigurationIdentifier, cl.HsmStatus.HsmConfigurationIdentifier) } if cl.ElasticIpStatus != nil { - in.ElasticIP = pointer.LateInitializeStringPtr(in.ElasticIP, cl.ElasticIpStatus.ElasticIp) + in.ElasticIP = pointer.LateInitialize(in.ElasticIP, cl.ElasticIpStatus.ElasticIp) } if len(cl.ClusterSecurityGroups) != 0 { diff --git a/pkg/clients/resolverruleassociation/resolverruleassociation.go b/pkg/clients/resolverruleassociation/resolverruleassociation.go index c3e4bb195d..3909045ac2 100644 --- a/pkg/clients/resolverruleassociation/resolverruleassociation.go +++ b/pkg/clients/resolverruleassociation/resolverruleassociation.go @@ -44,7 +44,7 @@ func NewRoute53ResolverClient(cfg aws.Config) Client { // GenerateCreateAssociateResolverRuleInput returns a route53resolver AssociateResolverRuleOutput func GenerateCreateAssociateResolverRuleInput(cr *manualv1alpha1.ResolverRuleAssociation) *route53resolver.AssociateResolverRuleInput { reqInput := &route53resolver.AssociateResolverRuleInput{ - Name: pointer.String(meta.GetExternalName(cr)), + Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), VPCId: cr.Spec.ForProvider.VPCId, ResolverRuleId: cr.Spec.ForProvider.ResolverRuleID, } diff --git a/pkg/clients/resourcerecordset/resourcerecordset.go b/pkg/clients/resourcerecordset/resourcerecordset.go index 38fe93c71f..66cf55832b 100644 --- a/pkg/clients/resourcerecordset/resourcerecordset.go +++ b/pkg/clients/resourcerecordset/resourcerecordset.go @@ -168,13 +168,13 @@ func LateInitialize(in *v1alpha1.ResourceRecordSetParameters, rrSet *route53type if in.AliasTarget == nil { in.AliasTarget = &v1alpha1.AliasTarget{} } - in.AliasTarget.HostedZoneID = pointer.LateInitializeString(in.AliasTarget.HostedZoneID, rrSet.AliasTarget.HostedZoneId) - in.AliasTarget.DNSName = pointer.LateInitializeString(in.AliasTarget.DNSName, rrSet.AliasTarget.DNSName) + in.AliasTarget.HostedZoneID = pointer.LateInitializeValueFromPtr(in.AliasTarget.HostedZoneID, rrSet.AliasTarget.HostedZoneId) + in.AliasTarget.DNSName = pointer.LateInitializeValueFromPtr(in.AliasTarget.DNSName, rrSet.AliasTarget.DNSName) in.AliasTarget.EvaluateTargetHealth = rrSet.AliasTarget.EvaluateTargetHealth } rrType := string(rrSet.Type) - in.Type = pointer.LateInitializeString(in.Type, &rrType) - in.TTL = pointer.LateInitializeInt64Ptr(in.TTL, rrSet.TTL) + in.Type = pointer.LateInitializeValueFromPtr(in.Type, &rrType) + in.TTL = pointer.LateInitialize(in.TTL, rrSet.TTL) if len(in.ResourceRecords) == 0 && len(rrSet.ResourceRecords) != 0 { in.ResourceRecords = make([]v1alpha1.ResourceRecord, len(rrSet.ResourceRecords)) for i, val := range rrSet.ResourceRecords { diff --git a/pkg/clients/s3/bucketpolicy_test.go b/pkg/clients/s3/bucketpolicy_test.go index 4ed609ece8..5305d66b49 100644 --- a/pkg/clients/s3/bucketpolicy_test.go +++ b/pkg/clients/s3/bucketpolicy_test.go @@ -30,7 +30,7 @@ import ( var ( // an arbitrary managed resource effect = "Allow" - statementID = pointer.String("1") + statementID = pointer.ToOrNilIfZeroValue("1") ) type statementModifier func(statement *common.BucketPolicyStatement) @@ -95,13 +95,13 @@ func TestSerializeBucketPolicyStatement(t *testing.T) { withPrincipal(&common.BucketPrincipal{ AWSPrincipals: []common.AWSPrincipal{ { - UserARN: pointer.String("arn:aws:iam::111122223333:userARN"), + UserARN: pointer.ToOrNilIfZeroValue("arn:aws:iam::111122223333:userARN"), }, { - AWSAccountID: pointer.String("111122223333"), + AWSAccountID: pointer.ToOrNilIfZeroValue("111122223333"), }, { - IAMRoleARN: pointer.String("arn:aws:iam::111122223333:roleARN"), + IAMRoleARN: pointer.ToOrNilIfZeroValue("arn:aws:iam::111122223333:roleARN"), }, }, }), @@ -113,11 +113,11 @@ func TestSerializeBucketPolicyStatement(t *testing.T) { Conditions: []common.ConditionPair{ { ConditionKey: "test", - ConditionStringValue: pointer.String("testKey"), + ConditionStringValue: pointer.ToOrNilIfZeroValue("testKey"), }, { ConditionKey: "test2", - ConditionStringValue: pointer.String("testKey2"), + ConditionStringValue: pointer.ToOrNilIfZeroValue("testKey2"), }, }, }, diff --git a/pkg/clients/sns/subscription.go b/pkg/clients/sns/subscription.go index f92a10abfe..3798d9a543 100644 --- a/pkg/clients/sns/subscription.go +++ b/pkg/clients/sns/subscription.go @@ -105,11 +105,11 @@ func GenerateSubscriptionObservation(attr map[string]string) v1beta1.Subscriptio // *v1beta1.SubscriptionParameters with the values seen in // sns.Subscription func LateInitializeSubscription(in *v1beta1.SubscriptionParameters, subAttributes map[string]string) { - in.DeliveryPolicy = pointer.LateInitializeStringPtr(in.DeliveryPolicy, pointer.String(subAttributes[SubscriptionDeliveryPolicy])) - in.FilterPolicy = pointer.LateInitializeStringPtr(in.FilterPolicy, pointer.String(subAttributes[SubscriptionFilterPolicy])) - in.FilterPolicyScope = pointer.LateInitializeStringPtr(in.FilterPolicyScope, pointer.String(subAttributes[SubscriptionFilterPolicyScope])) - in.RawMessageDelivery = pointer.LateInitializeStringPtr(in.RawMessageDelivery, pointer.String(subAttributes[SubscriptionRawMessageDelivery])) - in.RedrivePolicy = pointer.LateInitializeStringPtr(in.RedrivePolicy, pointer.String(subAttributes[SubscriptionRedrivePolicy])) + in.DeliveryPolicy = pointer.LateInitialize(in.DeliveryPolicy, pointer.ToOrNilIfZeroValue(subAttributes[SubscriptionDeliveryPolicy])) + in.FilterPolicy = pointer.LateInitialize(in.FilterPolicy, pointer.ToOrNilIfZeroValue(subAttributes[SubscriptionFilterPolicy])) + in.FilterPolicyScope = pointer.LateInitialize(in.FilterPolicyScope, pointer.ToOrNilIfZeroValue(subAttributes[SubscriptionFilterPolicyScope])) + in.RawMessageDelivery = pointer.LateInitialize(in.RawMessageDelivery, pointer.ToOrNilIfZeroValue(subAttributes[SubscriptionRawMessageDelivery])) + in.RedrivePolicy = pointer.LateInitialize(in.RedrivePolicy, pointer.ToOrNilIfZeroValue(subAttributes[SubscriptionRedrivePolicy])) } // getSubAttributes returns map of SNS Sunscription Attributes diff --git a/pkg/clients/sns/subscription_test.go b/pkg/clients/sns/subscription_test.go index 82790869bc..1cdb24130d 100644 --- a/pkg/clients/sns/subscription_test.go +++ b/pkg/clients/sns/subscription_test.go @@ -161,7 +161,7 @@ func TestGenerateSubscribeInput(t *testing.T) { Protocol: subEmailProtocol, }, out: sns.SubscribeInput{ - TopicArn: pointer.String(topicArn), + TopicArn: pointer.ToOrNilIfZeroValue(topicArn), Endpoint: &subEmailEndpoint, Protocol: &subEmailProtocol, ReturnSubscriptionArn: subBoolTrue, diff --git a/pkg/clients/sns/topic.go b/pkg/clients/sns/topic.go index 3679e6c2d7..4d99f1481d 100644 --- a/pkg/clients/sns/topic.go +++ b/pkg/clients/sns/topic.go @@ -100,15 +100,15 @@ func GenerateCreateTopicInput(p *v1beta1.TopicParameters) *sns.CreateTopicInput // LateInitializeTopicAttr fills the empty fields in *v1beta1.TopicParameters with the // values seen in sns.Topic. func LateInitializeTopicAttr(in *v1beta1.TopicParameters, attrs map[string]string) { - in.DisplayName = pointer.LateInitializeStringPtr(in.DisplayName, aws.String(attrs[string(TopicDisplayName)])) - in.DeliveryPolicy = pointer.LateInitializeStringPtr(in.DeliveryPolicy, aws.String(attrs[string(TopicDeliveryPolicy)])) - in.KMSMasterKeyID = pointer.LateInitializeStringPtr(in.KMSMasterKeyID, aws.String(attrs[string(TopicKmsMasterKeyID)])) - in.Policy = pointer.LateInitializeStringPtr(in.Policy, aws.String(attrs[string(TopicPolicy)])) + in.DisplayName = pointer.LateInitialize(in.DisplayName, aws.String(attrs[string(TopicDisplayName)])) + in.DeliveryPolicy = pointer.LateInitialize(in.DeliveryPolicy, aws.String(attrs[string(TopicDeliveryPolicy)])) + in.KMSMasterKeyID = pointer.LateInitialize(in.KMSMasterKeyID, aws.String(attrs[string(TopicKmsMasterKeyID)])) + in.Policy = pointer.LateInitialize(in.Policy, aws.String(attrs[string(TopicPolicy)])) in.FifoTopic = nil fifoTopic, err := strconv.ParseBool(attrs[string(TopicFifoTopic)]) if err == nil && fifoTopic { - in.FifoTopic = pointer.LateInitializeBoolPtr(in.FifoTopic, aws.Bool(fifoTopic)) + in.FifoTopic = pointer.LateInitialize(in.FifoTopic, aws.Bool(fifoTopic)) } } diff --git a/pkg/clients/sqs/queue.go b/pkg/clients/sqs/queue.go index c23d28f19e..2c71ace249 100644 --- a/pkg/clients/sqs/queue.go +++ b/pkg/clients/sqs/queue.go @@ -161,17 +161,17 @@ func LateInitialize(in *v1beta1.QueueParameters, attributes map[string]string, t } } - in.DelaySeconds = pointer.LateInitializeInt64Ptr(in.DelaySeconds, int64Ptr(attributes[v1beta1.AttributeDelaySeconds])) - in.KMSDataKeyReusePeriodSeconds = pointer.LateInitializeInt64Ptr(in.KMSDataKeyReusePeriodSeconds, int64Ptr(attributes[v1beta1.AttributeKmsDataKeyReusePeriodSeconds])) - in.MaximumMessageSize = pointer.LateInitializeInt64Ptr(in.MaximumMessageSize, int64Ptr(attributes[v1beta1.AttributeMaximumMessageSize])) - in.MessageRetentionPeriod = pointer.LateInitializeInt64Ptr(in.MessageRetentionPeriod, int64Ptr(attributes[v1beta1.AttributeMessageRetentionPeriod])) - in.ReceiveMessageWaitTimeSeconds = pointer.LateInitializeInt64Ptr(in.ReceiveMessageWaitTimeSeconds, int64Ptr(attributes[v1beta1.AttributeReceiveMessageWaitTimeSeconds])) - in.VisibilityTimeout = pointer.LateInitializeInt64Ptr(in.VisibilityTimeout, int64Ptr(attributes[v1beta1.AttributeVisibilityTimeout])) + in.DelaySeconds = pointer.LateInitialize(in.DelaySeconds, int64Ptr(attributes[v1beta1.AttributeDelaySeconds])) + in.KMSDataKeyReusePeriodSeconds = pointer.LateInitialize(in.KMSDataKeyReusePeriodSeconds, int64Ptr(attributes[v1beta1.AttributeKmsDataKeyReusePeriodSeconds])) + in.MaximumMessageSize = pointer.LateInitialize(in.MaximumMessageSize, int64Ptr(attributes[v1beta1.AttributeMaximumMessageSize])) + in.MessageRetentionPeriod = pointer.LateInitialize(in.MessageRetentionPeriod, int64Ptr(attributes[v1beta1.AttributeMessageRetentionPeriod])) + in.ReceiveMessageWaitTimeSeconds = pointer.LateInitialize(in.ReceiveMessageWaitTimeSeconds, int64Ptr(attributes[v1beta1.AttributeReceiveMessageWaitTimeSeconds])) + in.VisibilityTimeout = pointer.LateInitialize(in.VisibilityTimeout, int64Ptr(attributes[v1beta1.AttributeVisibilityTimeout])) in.SqsManagedSseEnabled = nil SqsManagedSseEnabled, err := strconv.ParseBool(attributes[v1beta1.AttributeSqsManagedSseEnabled]) if err == nil && SqsManagedSseEnabled { - in.SqsManagedSseEnabled = pointer.LateInitializeBoolPtr(in.SqsManagedSseEnabled, aws.Bool(SqsManagedSseEnabled)) + in.SqsManagedSseEnabled = pointer.LateInitialize(in.SqsManagedSseEnabled, aws.Bool(SqsManagedSseEnabled)) } if in.KMSMasterKeyID == nil && attributes[v1beta1.AttributeKmsMasterKeyID] != "" { diff --git a/pkg/controller/apigateway/method/setup.go b/pkg/controller/apigateway/method/setup.go index 799a68a146..e1c8637c44 100644 --- a/pkg/controller/apigateway/method/setup.go +++ b/pkg/controller/apigateway/method/setup.go @@ -139,10 +139,10 @@ func (c *custom) lateInitialize(cr *svcapitypes.MethodParameters, cur *svcsdk.Me } cr.ResourceID = resourceID } - cr.APIKeyRequired = pointer.LateInitializeBoolPtr(cr.APIKeyRequired, cur.ApiKeyRequired) - cr.AuthorizationScopes = pointer.LateInitializeStringPtrSlice(cr.AuthorizationScopes, cur.AuthorizationScopes) - cr.AuthorizationType = pointer.LateInitializeStringPtr(cr.AuthorizationType, cur.AuthorizationType) - cr.OperationName = pointer.LateInitializeStringPtr(cr.OperationName, cur.OperationName) + cr.APIKeyRequired = pointer.LateInitialize(cr.APIKeyRequired, cur.ApiKeyRequired) + cr.AuthorizationScopes = pointer.LateInitializeSlice(cr.AuthorizationScopes, cur.AuthorizationScopes) + cr.AuthorizationType = pointer.LateInitialize(cr.AuthorizationType, cur.AuthorizationType) + cr.OperationName = pointer.LateInitialize(cr.OperationName, cur.OperationName) if cr.RequestModels == nil && cur.RequestModels != nil { cr.RequestModels = cur.RequestModels diff --git a/pkg/controller/apigateway/resource/setup.go b/pkg/controller/apigateway/resource/setup.go index 87ebff59e1..3d0a60f063 100644 --- a/pkg/controller/apigateway/resource/setup.go +++ b/pkg/controller/apigateway/resource/setup.go @@ -103,7 +103,7 @@ func (c *custom) preCreate(ctx context.Context, cr *svcapitypes.Resource, obj *s func (c *custom) preUpdate(ctx context.Context, cr *svcapitypes.Resource, obj *svcsdk.UpdateResourceInput) error { in := &svcsdk.GetResourceInput{ RestApiId: cr.Spec.ForProvider.RestAPIID, - ResourceId: pointer.String(meta.GetExternalName(cr)), + ResourceId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), } cur := &svcapitypes.ResourceParameters{ @@ -129,7 +129,7 @@ func (c *custom) preUpdate(ctx context.Context, cr *svcapitypes.Resource, obj *s func preObserve(_ context.Context, cr *svcapitypes.Resource, obj *svcsdk.GetResourceInput) error { obj.RestApiId = cr.Spec.ForProvider.RestAPIID - obj.ResourceId = pointer.String(meta.GetExternalName(cr)) + obj.ResourceId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -151,15 +151,15 @@ func postCreate(_ context.Context, cr *svcapitypes.Resource, resp *svcsdk.Resour } func preDelete(_ context.Context, cr *svcapitypes.Resource, obj *svcsdk.DeleteResourceInput) (bool, error) { - obj.ResourceId = pointer.String(meta.GetExternalName(cr)) + obj.ResourceId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.RestApiId = cr.Spec.ForProvider.RestAPIID return false, nil } func lateInitialize(cr *svcapitypes.ResourceParameters, cur *svcsdk.Resource) error { - cr.PathPart = pointer.LateInitializeStringPtr(cr.PathPart, cur.PathPart) - cr.ParentResourceID = pointer.LateInitializeStringPtr(cr.ParentResourceID, cur.ParentId) + cr.PathPart = pointer.LateInitialize(cr.PathPart, cur.PathPart) + cr.ParentResourceID = pointer.LateInitialize(cr.ParentResourceID, cur.ParentId) return nil } diff --git a/pkg/controller/apigateway/restapi/setup.go b/pkg/controller/apigateway/restapi/setup.go index 811bd9d041..636796c4e1 100644 --- a/pkg/controller/apigateway/restapi/setup.go +++ b/pkg/controller/apigateway/restapi/setup.go @@ -86,7 +86,7 @@ type custom struct { } func preObserve(_ context.Context, cr *svcapitypes.RestAPI, obj *svcsdk.GetRestApiInput) error { - obj.RestApiId = pointer.String(meta.GetExternalName(cr)) + obj.RestApiId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -110,7 +110,7 @@ func postCreate(_ context.Context, cr *svcapitypes.RestAPI, resp *svcsdk.RestApi func (c *custom) preUpdate(ctx context.Context, cr *svcapitypes.RestAPI, obj *svcsdk.UpdateRestApiInput) error { - rapi, err := c.Client.GetRestAPIByID(ctx, pointer.String(meta.GetExternalName(cr))) + rapi, err := c.Client.GetRestAPIByID(ctx, pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))) if err != nil { return errors.Wrap(err, "cannot get rest api") } @@ -135,13 +135,13 @@ func (c *custom) preUpdate(ctx context.Context, cr *svcapitypes.RestAPI, obj *sv } obj.PatchOperations = pOps - obj.RestApiId = pointer.String(meta.GetExternalName(cr)) + obj.RestApiId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } func preDelete(_ context.Context, cr *svcapitypes.RestAPI, obj *svcsdk.DeleteRestApiInput) (bool, error) { - obj.RestApiId = pointer.String(meta.GetExternalName(cr)) + obj.RestApiId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } @@ -175,18 +175,18 @@ func isUpToDate(_ context.Context, cr *svcapitypes.RestAPI, cur *svcsdk.RestApi) } func lateInitialize(in *svcapitypes.RestAPIParameters, cur *svcsdk.RestApi) error { - in.APIKeySource = pointer.LateInitializeStringPtr(in.APIKeySource, cur.ApiKeySource) - in.BinaryMediaTypes = pointer.LateInitializeStringPtrSlice(in.BinaryMediaTypes, cur.BinaryMediaTypes) - in.Description = pointer.LateInitializeStringPtr(in.Description, cur.Description) - in.DisableExecuteAPIEndpoint = pointer.LateInitializeBoolPtr(in.DisableExecuteAPIEndpoint, cur.DisableExecuteApiEndpoint) - in.MinimumCompressionSize = pointer.LateInitializeInt64Ptr(in.MinimumCompressionSize, cur.MinimumCompressionSize) + in.APIKeySource = pointer.LateInitialize(in.APIKeySource, cur.ApiKeySource) + in.BinaryMediaTypes = pointer.LateInitializeSlice(in.BinaryMediaTypes, cur.BinaryMediaTypes) + in.Description = pointer.LateInitialize(in.Description, cur.Description) + in.DisableExecuteAPIEndpoint = pointer.LateInitialize(in.DisableExecuteAPIEndpoint, cur.DisableExecuteApiEndpoint) + in.MinimumCompressionSize = pointer.LateInitialize(in.MinimumCompressionSize, cur.MinimumCompressionSize) if cur.EndpointConfiguration != nil { if in.EndpointConfiguration == nil { in.EndpointConfiguration = &svcapitypes.EndpointConfiguration{} } - in.EndpointConfiguration.Types = pointer.LateInitializeStringPtrSlice(in.EndpointConfiguration.Types, cur.EndpointConfiguration.Types) - in.EndpointConfiguration.VPCEndpointIDs = pointer.LateInitializeStringPtrSlice(in.EndpointConfiguration.VPCEndpointIDs, cur.EndpointConfiguration.VpcEndpointIds) + in.EndpointConfiguration.Types = pointer.LateInitializeSlice(in.EndpointConfiguration.Types, cur.EndpointConfiguration.Types) + in.EndpointConfiguration.VPCEndpointIDs = pointer.LateInitializeSlice(in.EndpointConfiguration.VPCEndpointIDs, cur.EndpointConfiguration.VpcEndpointIds) } return lateInitializePolicies(in, cur) @@ -226,7 +226,7 @@ func lateInitializePolicies(in *svcapitypes.RestAPIParameters, cur *svcsdk.RestA return err } } - in.Policy = pointer.LateInitializeStringPtr(in.Policy, cur.Policy) + in.Policy = pointer.LateInitialize(in.Policy, cur.Policy) return err } diff --git a/pkg/controller/athena/workgroup/setup.go b/pkg/controller/athena/workgroup/setup.go index 02e9deb518..a60c584441 100644 --- a/pkg/controller/athena/workgroup/setup.go +++ b/pkg/controller/athena/workgroup/setup.go @@ -74,12 +74,12 @@ func SetupWorkGroup(mgr ctrl.Manager, o controller.Options) error { } func preDelete(_ context.Context, cr *svcapitypes.WorkGroup, obj *svcsdk.DeleteWorkGroupInput) (bool, error) { - obj.WorkGroup = pointer.String(meta.GetExternalName(cr)) + obj.WorkGroup = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } func preObserve(_ context.Context, cr *svcapitypes.WorkGroup, obj *svcsdk.GetWorkGroupInput) error { - obj.WorkGroup = pointer.String(meta.GetExternalName(cr)) + obj.WorkGroup = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -99,7 +99,7 @@ func postObserve(_ context.Context, cr *svcapitypes.WorkGroup, obj *svcsdk.GetWo } func preCreate(_ context.Context, cr *svcapitypes.WorkGroup, obj *svcsdk.CreateWorkGroupInput) error { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } diff --git a/pkg/controller/autoscaling/autoscalinggroup/setup.go b/pkg/controller/autoscaling/autoscalinggroup/setup.go index 8cca37a540..f846a2f764 100644 --- a/pkg/controller/autoscaling/autoscalinggroup/setup.go +++ b/pkg/controller/autoscaling/autoscalinggroup/setup.go @@ -241,23 +241,23 @@ func isUpToDate(_ context.Context, obj *svcapitypes.AutoScalingGroup, obs *svcsd func lateInitialize(in *svcapitypes.AutoScalingGroupParameters, asg *svcsdk.DescribeAutoScalingGroupsOutput) error { obs := asg.AutoScalingGroups[0] - in.AvailabilityZones = pointer.LateInitializeStringPtrSlice(in.AvailabilityZones, obs.AvailabilityZones) - in.Context = pointer.LateInitializeStringPtr(in.Context, obs.Context) - in.CapacityRebalance = pointer.LateInitializeBoolPtr(in.CapacityRebalance, obs.CapacityRebalance) - in.DefaultCooldown = pointer.LateInitializeInt64Ptr(in.DefaultCooldown, obs.DefaultCooldown) - in.DefaultInstanceWarmup = pointer.LateInitializeInt64Ptr(in.DefaultInstanceWarmup, obs.DefaultInstanceWarmup) - in.DesiredCapacity = pointer.LateInitializeInt64Ptr(in.DesiredCapacity, obs.DesiredCapacity) - in.DesiredCapacityType = pointer.LateInitializeStringPtr(in.DesiredCapacityType, obs.DesiredCapacityType) - in.HealthCheckGracePeriod = pointer.LateInitializeInt64Ptr(in.HealthCheckGracePeriod, obs.HealthCheckGracePeriod) - in.HealthCheckType = pointer.LateInitializeStringPtr(in.HealthCheckType, obs.HealthCheckType) - in.LoadBalancerNames = pointer.LateInitializeStringPtrSlice(in.LoadBalancerNames, obs.LoadBalancerNames) - in.MaxInstanceLifetime = pointer.LateInitializeInt64Ptr(in.MaxInstanceLifetime, obs.MaxInstanceLifetime) - in.NewInstancesProtectedFromScaleIn = pointer.LateInitializeBoolPtr(in.NewInstancesProtectedFromScaleIn, obs.NewInstancesProtectedFromScaleIn) - in.PlacementGroup = pointer.LateInitializeStringPtr(in.PlacementGroup, obs.PlacementGroup) - in.ServiceLinkedRoleARN = pointer.LateInitializeStringPtr(in.ServiceLinkedRoleARN, obs.ServiceLinkedRoleARN) - in.TargetGroupARNs = pointer.LateInitializeStringPtrSlice(in.TargetGroupARNs, obs.TargetGroupARNs) - in.TerminationPolicies = pointer.LateInitializeStringPtrSlice(in.TerminationPolicies, obs.TerminationPolicies) - in.VPCZoneIdentifier = pointer.LateInitializeStringPtr(in.VPCZoneIdentifier, obs.VPCZoneIdentifier) + in.AvailabilityZones = pointer.LateInitializeSlice(in.AvailabilityZones, obs.AvailabilityZones) + in.Context = pointer.LateInitialize(in.Context, obs.Context) + in.CapacityRebalance = pointer.LateInitialize(in.CapacityRebalance, obs.CapacityRebalance) + in.DefaultCooldown = pointer.LateInitialize(in.DefaultCooldown, obs.DefaultCooldown) + in.DefaultInstanceWarmup = pointer.LateInitialize(in.DefaultInstanceWarmup, obs.DefaultInstanceWarmup) + in.DesiredCapacity = pointer.LateInitialize(in.DesiredCapacity, obs.DesiredCapacity) + in.DesiredCapacityType = pointer.LateInitialize(in.DesiredCapacityType, obs.DesiredCapacityType) + in.HealthCheckGracePeriod = pointer.LateInitialize(in.HealthCheckGracePeriod, obs.HealthCheckGracePeriod) + in.HealthCheckType = pointer.LateInitialize(in.HealthCheckType, obs.HealthCheckType) + in.LoadBalancerNames = pointer.LateInitializeSlice(in.LoadBalancerNames, obs.LoadBalancerNames) + in.MaxInstanceLifetime = pointer.LateInitialize(in.MaxInstanceLifetime, obs.MaxInstanceLifetime) + in.NewInstancesProtectedFromScaleIn = pointer.LateInitialize(in.NewInstancesProtectedFromScaleIn, obs.NewInstancesProtectedFromScaleIn) + in.PlacementGroup = pointer.LateInitialize(in.PlacementGroup, obs.PlacementGroup) + in.ServiceLinkedRoleARN = pointer.LateInitialize(in.ServiceLinkedRoleARN, obs.ServiceLinkedRoleARN) + in.TargetGroupARNs = pointer.LateInitializeSlice(in.TargetGroupARNs, obs.TargetGroupARNs) + in.TerminationPolicies = pointer.LateInitializeSlice(in.TerminationPolicies, obs.TerminationPolicies) + in.VPCZoneIdentifier = pointer.LateInitialize(in.VPCZoneIdentifier, obs.VPCZoneIdentifier) return nil } diff --git a/pkg/controller/batch/computeenvironment/setup.go b/pkg/controller/batch/computeenvironment/setup.go index 03dcf8668b..0138ad9e7e 100644 --- a/pkg/controller/batch/computeenvironment/setup.go +++ b/pkg/controller/batch/computeenvironment/setup.go @@ -85,7 +85,7 @@ type hooks struct { } func preObserve(_ context.Context, cr *svcapitypes.ComputeEnvironment, obj *svcsdk.DescribeComputeEnvironmentsInput) error { - obj.ComputeEnvironments = []*string{pointer.String(meta.GetExternalName(cr))} // we only want to observe our CE + obj.ComputeEnvironments = []*string{pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))} // we only want to observe our CE return nil } @@ -117,7 +117,7 @@ func postObserve(_ context.Context, cr *svcapitypes.ComputeEnvironment, resp *sv //nolint:gocyclo func preUpdate(_ context.Context, cr *svcapitypes.ComputeEnvironment, obj *svcsdk.UpdateComputeEnvironmentInput) error { - obj.ComputeEnvironment = pointer.String(meta.GetExternalName(cr)) + obj.ComputeEnvironment = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.ServiceRole = cr.Spec.ForProvider.ServiceRoleARN obj.State = cr.Spec.ForProvider.DesiredState @@ -194,7 +194,7 @@ func (e *hooks) postUpdate(ctx context.Context, cr *svcapitypes.ComputeEnvironme } func preCreate(_ context.Context, cr *svcapitypes.ComputeEnvironment, obj *svcsdk.CreateComputeEnvironmentInput) error { - obj.ComputeEnvironmentName = pointer.String(cr.Name) + obj.ComputeEnvironmentName = pointer.ToOrNilIfZeroValue(cr.Name) obj.ServiceRole = cr.Spec.ForProvider.ServiceRoleARN if obj.ComputeResources != nil { @@ -208,7 +208,7 @@ func preCreate(_ context.Context, cr *svcapitypes.ComputeEnvironment, obj *svcsd } func (e *hooks) preDelete(ctx context.Context, cr *svcapitypes.ComputeEnvironment, obj *svcsdk.DeleteComputeEnvironmentInput) (bool, error) { - obj.ComputeEnvironment = pointer.String(meta.GetExternalName(cr)) + obj.ComputeEnvironment = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) // Skip Deletion if CE is updating or already deleting if pointer.StringValue(cr.Status.AtProvider.Status) == svcsdk.CEStatusUpdating || @@ -224,8 +224,8 @@ func (e *hooks) preDelete(ctx context.Context, cr *svcapitypes.ComputeEnvironmen } // Update the CE to set the state to DISABLED _, err := e.client.UpdateComputeEnvironmentWithContext(ctx, &svcsdk.UpdateComputeEnvironmentInput{ - ComputeEnvironment: pointer.String(meta.GetExternalName(cr)), - State: pointer.String(svcsdk.CEStateDisabled)}) + ComputeEnvironment: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), + State: pointer.ToOrNilIfZeroValue(svcsdk.CEStateDisabled)}) return true, errorutils.Wrap(err, errUpdate) } @@ -302,12 +302,12 @@ func lateInitialize(spec *svcapitypes.ComputeEnvironmentParameters, resp *svcsdk ce := resp.ComputeEnvironments[0] - spec.DesiredState = pointer.LateInitializeStringPtr(spec.DesiredState, ce.State) - spec.ServiceRoleARN = pointer.LateInitializeStringPtr(spec.ServiceRoleARN, ce.ServiceRole) + spec.DesiredState = pointer.LateInitialize(spec.DesiredState, ce.State) + spec.ServiceRoleARN = pointer.LateInitialize(spec.ServiceRoleARN, ce.ServiceRole) if ce.ComputeResources != nil { - spec.ComputeResources.MinvCPUs = pointer.LateInitializeInt64Ptr(spec.ComputeResources.MinvCPUs, ce.ComputeResources.MinvCpus) - spec.ComputeResources.MaxvCPUs = pointer.LateInitializeInt64Ptr(spec.ComputeResources.MaxvCPUs, ce.ComputeResources.MaxvCpus) + spec.ComputeResources.MinvCPUs = pointer.LateInitialize(spec.ComputeResources.MinvCPUs, ce.ComputeResources.MinvCpus) + spec.ComputeResources.MaxvCPUs = pointer.LateInitialize(spec.ComputeResources.MaxvCPUs, ce.ComputeResources.MaxvCpus) if pointer.StringValue(ce.ComputeResources.Type) == string(svcsdk.CRTypeEc2) || pointer.StringValue(ce.ComputeResources.Type) == string(svcsdk.CRTypeSpot) { diff --git a/pkg/controller/batch/job/controller.go b/pkg/controller/batch/job/controller.go index 9a43ff957a..d95336db1b 100644 --- a/pkg/controller/batch/job/controller.go +++ b/pkg/controller/batch/job/controller.go @@ -119,7 +119,7 @@ func (e *external) Observe(ctx context.Context, mg resource.Managed) (managed.Ex } resp, err := e.client.DescribeJobsWithContext(ctx, &svcsdk.DescribeJobsInput{ - Jobs: []*string{pointer.String(meta.GetExternalName(cr))}, + Jobs: []*string{pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))}, }) if err != nil { return managed.ExternalObservation{}, errorutils.Wrap(resource.Ignore(isErrorNotFound, err), errDescribeJob) @@ -195,8 +195,8 @@ func (e *external) Delete(ctx context.Context, mg resource.Managed) error { cr.Status.SetConditions(xpv1.Deleting()) // No terminate-request needed, when Job is already finished - if cr.Status.AtProvider.Status == pointer.String(svcsdk.JobStatusFailed) || - cr.Status.AtProvider.Status == pointer.String(svcsdk.JobStatusSucceeded) { + if cr.Status.AtProvider.Status == pointer.ToOrNilIfZeroValue(svcsdk.JobStatusFailed) || + cr.Status.AtProvider.Status == pointer.ToOrNilIfZeroValue(svcsdk.JobStatusSucceeded) { return nil } @@ -206,7 +206,7 @@ func (e *external) Delete(ctx context.Context, mg resource.Managed) error { // e.g. when Job is PENDING bc it's dependend on another Job to finish, // termination seems to not get through until dependend Job is fisnished ... (-> tested on AWS Console) - _, err := e.client.TerminateJobWithContext(ctx, generateTerminateJobInput(cr, pointer.String("Terminated for crossplane deletion"))) + _, err := e.client.TerminateJobWithContext(ctx, generateTerminateJobInput(cr, pointer.ToOrNilIfZeroValue("Terminated for crossplane deletion"))) return errorutils.Wrap(resource.Ignore(isErrorNotFound, err), errTerminateJob) } @@ -233,7 +233,7 @@ func (e *external) lateInitialize(spec, current *svcapitypes.JobParameters) { // } if current.NodeOverrides != nil { - spec.NodeOverrides.NumNodes = pointer.LateInitializeInt64Ptr(spec.NodeOverrides.NumNodes, current.NodeOverrides.NumNodes) + spec.NodeOverrides.NumNodes = pointer.LateInitialize(spec.NodeOverrides.NumNodes, current.NodeOverrides.NumNodes) if current.NodeOverrides.NodePropertyOverrides != nil { @@ -248,7 +248,7 @@ func (e *external) lateInitialize(spec, current *svcapitypes.JobParameters) { // specNoProOver.ContainerOverrides = &svcapitypes.ContainerOverrides{} } lateInitContainerOverrides(specNoProOver.ContainerOverrides, noProOver.ContainerOverrides) - specNoProOver.TargetNodes = pointer.LateInitializeString(specNoProOver.TargetNodes, pointer.String(noProOver.TargetNodes)) + specNoProOver.TargetNodes = pointer.LateInitializeValueFromPtr(specNoProOver.TargetNodes, pointer.ToOrNilIfZeroValue(noProOver.TargetNodes)) spec.NodeOverrides.NodePropertyOverrides[i] = specNoProOver } } @@ -263,8 +263,8 @@ func (e *external) lateInitialize(spec, current *svcapitypes.JobParameters) { // // Helper for lateInitialize() with ContainerOverrides func lateInitContainerOverrides(spec, current *svcapitypes.ContainerOverrides) { - spec.Command = pointer.LateInitializeStringPtrSlice(spec.Command, current.Command) - spec.InstanceType = pointer.LateInitializeStringPtr(spec.InstanceType, current.InstanceType) + spec.Command = pointer.LateInitializeSlice(spec.Command, current.Command) + spec.InstanceType = pointer.LateInitialize(spec.InstanceType, current.InstanceType) if spec.Environment == nil && current.Environment != nil { env := []*svcapitypes.KeyValuePair{} for _, pair := range current.Environment { diff --git a/pkg/controller/batch/job/conversion.go b/pkg/controller/batch/job/conversion.go index 8eacfc2f0b..2d297019e0 100644 --- a/pkg/controller/batch/job/conversion.go +++ b/pkg/controller/batch/job/conversion.go @@ -243,7 +243,7 @@ func getContainerOverridesFromProperties(co *svcsdk.ContainerProperties) *svcapi func generateSubmitJobInput(cr *svcapitypes.Job) *svcsdk.SubmitJobInput { //nolint:gocyclo res := &svcsdk.SubmitJobInput{} - res.JobName = pointer.String(cr.Name) + res.JobName = pointer.ToOrNilIfZeroValue(cr.Name) if cr.Spec.ForProvider.ArrayProperties != nil { res.ArrayProperties = &svcsdk.ArrayProperties{Size: cr.Spec.ForProvider.ArrayProperties.Size} @@ -266,8 +266,8 @@ func generateSubmitJobInput(cr *svcapitypes.Job) *svcsdk.SubmitJobInput { //noli res.DependsOn = nil } - res.JobDefinition = pointer.String(cr.Spec.ForProvider.JobDefinition) - res.JobQueue = pointer.String(cr.Spec.ForProvider.JobQueue) + res.JobDefinition = pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.JobDefinition) + res.JobQueue = pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.JobQueue) np := cr.Spec.ForProvider.NodeOverrides if np != nil { @@ -279,7 +279,7 @@ func generateSubmitJobInput(cr *svcapitypes.Job) *svcsdk.SubmitJobInput { //noli if noProOvers.ContainerOverrides != nil { sdkNoProOver.ContainerOverrides = assignContainerOverrides(noProOvers.ContainerOverrides) } - sdkNoProOver.TargetNodes = pointer.String(noProOvers.TargetNodes) + sdkNoProOver.TargetNodes = pointer.ToOrNilIfZeroValue(noProOvers.TargetNodes) noProOver = append(noProOver, sdkNoProOver) } nodeOvers.NodePropertyOverrides = noProOver @@ -305,7 +305,7 @@ func generateSubmitJobInput(cr *svcapitypes.Job) *svcsdk.SubmitJobInput { //noli eoes := []*svcsdk.EvaluateOnExit{} for _, eoe := range cr.Spec.ForProvider.RetryStrategy.EvaluateOnExit { eoes = append(eoes, &svcsdk.EvaluateOnExit{ - Action: pointer.String(eoe.Action), + Action: pointer.ToOrNilIfZeroValue(eoe.Action), OnExitCode: eoe.OnExitCode, OnReason: eoe.OnReason, OnStatusReason: eoe.OnStatusReason, @@ -351,8 +351,8 @@ func assignContainerOverrides(co *svcapitypes.ContainerOverrides) *svcsdk.Contai resReqs := []*svcsdk.ResourceRequirement{} for _, resReq := range co.ResourceRequirements { resReqs = append(resReqs, &svcsdk.ResourceRequirement{ - Type: pointer.String(resReq.ResourceType), - Value: pointer.String(resReq.Value), + Type: pointer.ToOrNilIfZeroValue(resReq.ResourceType), + Value: pointer.ToOrNilIfZeroValue(resReq.Value), }) } specco.ResourceRequirements = resReqs @@ -363,7 +363,7 @@ func assignContainerOverrides(co *svcapitypes.ContainerOverrides) *svcsdk.Contai func generateTerminateJobInput(cr *svcapitypes.Job, msg *string) *svcsdk.TerminateJobInput { res := &svcsdk.TerminateJobInput{ - JobId: pointer.String(meta.GetExternalName(cr)), + JobId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), Reason: msg, } diff --git a/pkg/controller/batch/jobdefinition/controller.go b/pkg/controller/batch/jobdefinition/controller.go index f06b8218c9..79ee3538ae 100644 --- a/pkg/controller/batch/jobdefinition/controller.go +++ b/pkg/controller/batch/jobdefinition/controller.go @@ -117,7 +117,7 @@ func (e *external) Observe(ctx context.Context, mg resource.Managed) (managed.Ex resp, err := e.client.DescribeJobDefinitionsWithContext(ctx, &svcsdk.DescribeJobDefinitionsInput{ JobDefinitionName: &cr.Name, - Status: pointer.String("ACTIVE"), // to not get an older, inactive version/revision before we finish create! + Status: pointer.ToOrNilIfZeroValue("ACTIVE"), // to not get an older, inactive version/revision before we finish create! }) if err != nil { return managed.ExternalObservation{}, errorutils.Wrap(resource.Ignore(isErrorNotFound, err), errDescribeJobDefinition) @@ -186,7 +186,7 @@ func (e *external) Delete(ctx context.Context, mg resource.Managed) error { return errors.New(errNotBatchJobDefinition) } - if cr.Status.AtProvider.Status == pointer.String("INACTIVE") { + if cr.Status.AtProvider.Status == pointer.ToOrNilIfZeroValue("INACTIVE") { return nil } cr.Status.SetConditions(xpv1.Deleting()) @@ -196,13 +196,13 @@ func (e *external) Delete(ctx context.Context, mg resource.Managed) error { } func (e *external) lateInitialize(spec, current *svcapitypes.JobDefinitionParameters) { - // spec.PlatformCapabilities = pointer.LateInitializeStringPtrSlice(spec.PlatformCapabilities, current.PlatformCapabilities) - // spec.PropagateTags = pointer.LateInitializeBoolPtr(spec.PropagateTags, current.PropagateTags) + // spec.PlatformCapabilities = pointer.LateInitializeSlice(spec.PlatformCapabilities, current.PlatformCapabilities) + // spec.PropagateTags = pointer.LateInitialize(spec.PropagateTags, current.PropagateTags) // ^ doc hints default value, however these fields (also in AWS Console) stay empty... if current.ContainerProperties != nil { - if cmp.Equal(spec.PlatformCapabilities, []*string{pointer.String(svcsdk.PlatformCapabilityFargate)}) && spec.ContainerProperties.FargatePlatformConfiguration == nil { + if cmp.Equal(spec.PlatformCapabilities, []*string{pointer.ToOrNilIfZeroValue(svcsdk.PlatformCapabilityFargate)}) && spec.ContainerProperties.FargatePlatformConfiguration == nil { spec.ContainerProperties.FargatePlatformConfiguration = &svcapitypes.FargatePlatformConfiguration{PlatformVersion: current.ContainerProperties.FargatePlatformConfiguration.PlatformVersion} } } diff --git a/pkg/controller/batch/jobdefinition/conversion.go b/pkg/controller/batch/jobdefinition/conversion.go index 2869951e25..1afc633f4a 100644 --- a/pkg/controller/batch/jobdefinition/conversion.go +++ b/pkg/controller/batch/jobdefinition/conversion.go @@ -289,8 +289,8 @@ func getContainerProperties(cp *svcsdk.ContainerProperties) *svcapitypes.Contain func generateRegisterJobDefinitionInput(cr *svcapitypes.JobDefinition) *svcsdk.RegisterJobDefinitionInput { //nolint:gocyclo res := &svcsdk.RegisterJobDefinitionInput{} - res.JobDefinitionName = pointer.String(cr.Name) - res.Type = pointer.String(cr.Spec.ForProvider.JobDefinitionType) + res.JobDefinitionName = pointer.ToOrNilIfZeroValue(cr.Name) + res.Type = pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.JobDefinitionType) if cr.Spec.ForProvider.ContainerProperties != nil { res.ContainerProperties = assignContainerProperties(cr.Spec.ForProvider.ContainerProperties) @@ -309,7 +309,7 @@ func generateRegisterJobDefinitionInput(cr *svcapitypes.JobDefinition) *svcsdk.R if noRaProp.Container != nil { sdkNoRaProp.Container = assignContainerProperties(noRaProp.Container) } - sdkNoRaProp.TargetNodes = pointer.String(noRaProp.TargetNodes) + sdkNoRaProp.TargetNodes = pointer.ToOrNilIfZeroValue(noRaProp.TargetNodes) noRaProps = append(noRaProps, sdkNoRaProp) } nodeProps.NodeRangeProperties = noRaProps @@ -339,7 +339,7 @@ func generateRegisterJobDefinitionInput(cr *svcapitypes.JobDefinition) *svcsdk.R eoes := []*svcsdk.EvaluateOnExit{} for _, eoe := range cr.Spec.ForProvider.RetryStrategy.EvaluateOnExit { eoes = append(eoes, &svcsdk.EvaluateOnExit{ - Action: pointer.String(eoe.Action), + Action: pointer.ToOrNilIfZeroValue(eoe.Action), OnExitCode: eoe.OnExitCode, OnReason: eoe.OnReason, OnStatusReason: eoe.OnStatusReason, @@ -400,7 +400,7 @@ func assignContainerProperties(cp *svcapitypes.ContainerProperties) *svcsdk.Cont for _, device := range cp.LinuxParameters.Devices { devices = append(devices, &svcsdk.Device{ ContainerPath: device.ContainerPath, - HostPath: pointer.String(device.HostPath), + HostPath: pointer.ToOrNilIfZeroValue(device.HostPath), Permissions: device.Permissions, }) } @@ -422,7 +422,7 @@ func assignContainerProperties(cp *svcapitypes.ContainerProperties) *svcsdk.Cont tmpfs := []*svcsdk.Tmpfs{} for _, tmpf := range cp.LinuxParameters.Tmpfs { tmpfs = append(tmpfs, &svcsdk.Tmpfs{ - ContainerPath: pointer.String(tmpf.ContainerPath), + ContainerPath: pointer.ToOrNilIfZeroValue(tmpf.ContainerPath), MountOptions: tmpf.MountOptions, Size: ptr.To(tmpf.Size), }) @@ -434,7 +434,7 @@ func assignContainerProperties(cp *svcapitypes.ContainerProperties) *svcsdk.Cont if cp.LogConfiguration != nil { logConfi := &svcsdk.LogConfiguration{} - logConfi.LogDriver = pointer.String(cp.LogConfiguration.LogDriver) + logConfi.LogDriver = pointer.ToOrNilIfZeroValue(cp.LogConfiguration.LogDriver) if cp.LogConfiguration.Options != nil { logConfi.Options = cp.LogConfiguration.Options @@ -443,8 +443,8 @@ func assignContainerProperties(cp *svcapitypes.ContainerProperties) *svcsdk.Cont secrets := []*svcsdk.Secret{} for _, secret := range cp.LogConfiguration.SecretOptions { secrets = append(secrets, &svcsdk.Secret{ - Name: pointer.String(secret.Name), - ValueFrom: pointer.String(secret.ValueFrom), + Name: pointer.ToOrNilIfZeroValue(secret.Name), + ValueFrom: pointer.ToOrNilIfZeroValue(secret.ValueFrom), }) } logConfi.SecretOptions = secrets @@ -476,8 +476,8 @@ func assignContainerProperties(cp *svcapitypes.ContainerProperties) *svcsdk.Cont resReqs := []*svcsdk.ResourceRequirement{} for _, resReq := range cp.ResourceRequirements { resReqs = append(resReqs, &svcsdk.ResourceRequirement{ - Type: pointer.String(resReq.ResourceType), - Value: pointer.String(resReq.Value), + Type: pointer.ToOrNilIfZeroValue(resReq.ResourceType), + Value: pointer.ToOrNilIfZeroValue(resReq.Value), }) } sdkcp.ResourceRequirements = resReqs @@ -486,8 +486,8 @@ func assignContainerProperties(cp *svcapitypes.ContainerProperties) *svcsdk.Cont secrets := []*svcsdk.Secret{} for _, secret := range cp.Secrets { secrets = append(secrets, &svcsdk.Secret{ - Name: pointer.String(secret.Name), - ValueFrom: pointer.String(secret.ValueFrom), + Name: pointer.ToOrNilIfZeroValue(secret.Name), + ValueFrom: pointer.ToOrNilIfZeroValue(secret.ValueFrom), }) } sdkcp.Secrets = secrets @@ -497,7 +497,7 @@ func assignContainerProperties(cp *svcapitypes.ContainerProperties) *svcsdk.Cont for _, ulimit := range cp.Ulimits { ulimits = append(ulimits, &svcsdk.Ulimit{ HardLimit: ptr.To(ulimit.HardLimit), - Name: pointer.String(ulimit.Name), + Name: pointer.ToOrNilIfZeroValue(ulimit.Name), SoftLimit: ptr.To(ulimit.SoftLimit), }) } @@ -518,7 +518,7 @@ func assignContainerProperties(cp *svcapitypes.ContainerProperties) *svcsdk.Cont Iam: volume.EfsVolumeConfiguration.AuthorizationConfig.IAM, } } - sdkVolumeConfig.FileSystemId = pointer.String(volume.EfsVolumeConfiguration.FileSystemID) + sdkVolumeConfig.FileSystemId = pointer.ToOrNilIfZeroValue(volume.EfsVolumeConfiguration.FileSystemID) sdkVolumeConfig.RootDirectory = volume.EfsVolumeConfiguration.RootDirectory sdkVolumeConfig.TransitEncryption = volume.EfsVolumeConfiguration.TransitEncryption sdkVolumeConfig.TransitEncryptionPort = volume.EfsVolumeConfiguration.TransitEncryptionPort diff --git a/pkg/controller/batch/jobqueue/setup.go b/pkg/controller/batch/jobqueue/setup.go index fb3548aeb1..9f4a6f8739 100644 --- a/pkg/controller/batch/jobqueue/setup.go +++ b/pkg/controller/batch/jobqueue/setup.go @@ -90,7 +90,7 @@ type hooks struct { } func preObserve(_ context.Context, cr *svcapitypes.JobQueue, obj *svcsdk.DescribeJobQueuesInput) error { - obj.JobQueues = []*string{pointer.String(meta.GetExternalName(cr))} // we only want to observe our JQ + obj.JobQueues = []*string{pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))} // we only want to observe our JQ return nil } @@ -118,13 +118,13 @@ func postObserve(_ context.Context, cr *svcapitypes.JobQueue, resp *svcsdk.Descr } func preUpdate(_ context.Context, cr *svcapitypes.JobQueue, obj *svcsdk.UpdateJobQueueInput) error { - obj.JobQueue = pointer.String(meta.GetExternalName(cr)) + obj.JobQueue = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.State = cr.Spec.ForProvider.DesiredState for i := range cr.Spec.ForProvider.ComputeEnvironmentOrder { if awsarn.IsARN(cr.Spec.ForProvider.ComputeEnvironmentOrder[i].ComputeEnvironment) { obj.ComputeEnvironmentOrder = append(obj.ComputeEnvironmentOrder, &svcsdk.ComputeEnvironmentOrder{ - ComputeEnvironment: pointer.String(cr.Spec.ForProvider.ComputeEnvironmentOrder[i].ComputeEnvironment), + ComputeEnvironment: pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.ComputeEnvironmentOrder[i].ComputeEnvironment), Order: &cr.Spec.ForProvider.ComputeEnvironmentOrder[i].Order, }) } else { @@ -144,13 +144,13 @@ func (e *hooks) postUpdate(ctx context.Context, cr *svcapitypes.JobQueue, obj *s } func (e *hooks) preCreate(_ context.Context, cr *svcapitypes.JobQueue, obj *svcsdk.CreateJobQueueInput) error { - obj.JobQueueName = pointer.String(cr.Name) + obj.JobQueueName = pointer.ToOrNilIfZeroValue(cr.Name) obj.State = cr.Spec.ForProvider.DesiredState for i := range cr.Spec.ForProvider.ComputeEnvironmentOrder { if awsarn.IsARN(cr.Spec.ForProvider.ComputeEnvironmentOrder[i].ComputeEnvironment) { obj.ComputeEnvironmentOrder = append(obj.ComputeEnvironmentOrder, &svcsdk.ComputeEnvironmentOrder{ - ComputeEnvironment: pointer.String(cr.Spec.ForProvider.ComputeEnvironmentOrder[i].ComputeEnvironment), + ComputeEnvironment: pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.ComputeEnvironmentOrder[i].ComputeEnvironment), Order: &cr.Spec.ForProvider.ComputeEnvironmentOrder[i].Order, }) } else { @@ -161,7 +161,7 @@ func (e *hooks) preCreate(_ context.Context, cr *svcapitypes.JobQueue, obj *svcs } func (e *hooks) preDelete(ctx context.Context, cr *svcapitypes.JobQueue, obj *svcsdk.DeleteJobQueueInput) (bool, error) { - obj.JobQueue = pointer.String(meta.GetExternalName(cr)) + obj.JobQueue = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) // Skip Deletion if JQ is updating or already deleting if pointer.StringValue(cr.Status.AtProvider.Status) == svcsdk.JQStatusUpdating || @@ -175,8 +175,8 @@ func (e *hooks) preDelete(ctx context.Context, cr *svcapitypes.JobQueue, obj *sv } // Update the JQ to set the state to DISABLED _, err := e.client.UpdateJobQueueWithContext(ctx, &svcsdk.UpdateJobQueueInput{ - JobQueue: pointer.String(meta.GetExternalName(cr)), - State: pointer.String(svcsdk.JQStateDisabled)}) + JobQueue: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), + State: pointer.ToOrNilIfZeroValue(svcsdk.JQStateDisabled)}) return true, errorutils.Wrap(err, errUpdate) } @@ -213,7 +213,7 @@ func isUpToDate(_ context.Context, cr *svcapitypes.JobQueue, obj *svcsdk.Describ func lateInitialize(spec *svcapitypes.JobQueueParameters, resp *svcsdk.DescribeJobQueuesOutput) error { jq := resp.JobQueues[0] - spec.DesiredState = pointer.LateInitializeStringPtr(spec.DesiredState, jq.State) + spec.DesiredState = pointer.LateInitialize(spec.DesiredState, jq.State) return nil } diff --git a/pkg/controller/cache/cachesubnetgroup/controller.go b/pkg/controller/cache/cachesubnetgroup/controller.go index 3ea0d85abd..2531c5d156 100644 --- a/pkg/controller/cache/cachesubnetgroup/controller.go +++ b/pkg/controller/cache/cachesubnetgroup/controller.go @@ -112,7 +112,7 @@ func (e *external) Observe(ctx context.Context, mg resource.Managed) (managed.Ex } resp, err := e.client.DescribeCacheSubnetGroups(ctx, &awscache.DescribeCacheSubnetGroupsInput{ - CacheSubnetGroupName: pointer.String(meta.GetExternalName(cr)), + CacheSubnetGroupName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) if err != nil || resp.CacheSubnetGroups == nil { return managed.ExternalObservation{}, errorutils.Wrap(resource.Ignore(elasticache.IsSubnetGroupNotFound, err), errDescribeSubnetGroup) @@ -141,8 +141,8 @@ func (e *external) Create(ctx context.Context, mg resource.Managed) (managed.Ext cr.Status.SetConditions(xpv1.Creating()) _, err := e.client.CreateCacheSubnetGroup(ctx, &awscache.CreateCacheSubnetGroupInput{ - CacheSubnetGroupDescription: pointer.String(cr.Spec.ForProvider.Description), - CacheSubnetGroupName: pointer.String(meta.GetExternalName(cr)), + CacheSubnetGroupDescription: pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.Description), + CacheSubnetGroupName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), SubnetIds: cr.Spec.ForProvider.SubnetIDs, }) if err != nil { @@ -159,8 +159,8 @@ func (e *external) Update(ctx context.Context, mg resource.Managed) (managed.Ext } _, err := e.client.ModifyCacheSubnetGroup(ctx, &awscache.ModifyCacheSubnetGroupInput{ - CacheSubnetGroupDescription: pointer.String(cr.Spec.ForProvider.Description), - CacheSubnetGroupName: pointer.String(meta.GetExternalName(cr)), + CacheSubnetGroupDescription: pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.Description), + CacheSubnetGroupName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), SubnetIds: cr.Spec.ForProvider.SubnetIDs, }) @@ -176,7 +176,7 @@ func (e *external) Delete(ctx context.Context, mg resource.Managed) error { cr.SetConditions(xpv1.Deleting()) _, err := e.client.DeleteCacheSubnetGroup(ctx, &awscache.DeleteCacheSubnetGroupInput{ - CacheSubnetGroupName: pointer.String(meta.GetExternalName(cr)), + CacheSubnetGroupName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) return errorutils.Wrap(resource.Ignore(elasticache.IsNotFound, err), errDeleteSubnetGroup) diff --git a/pkg/controller/cache/replicationgroup/managed.go b/pkg/controller/cache/replicationgroup/managed.go index dd7cc94244..08820825c3 100644 --- a/pkg/controller/cache/replicationgroup/managed.go +++ b/pkg/controller/cache/replicationgroup/managed.go @@ -358,11 +358,11 @@ func (e *external) updateReplicationGroupNumCacheClusters(ctx context.Context, r case newReplicaCount > 5: return errors.New(errReplicationGroupCacheClusterMaximum) case desiredClusterSize > existingClusterSize: - input := elasticache.NewIncreaseReplicaCountInput(replicaGroup, pointer.Int32(newReplicaCount)) + input := elasticache.NewIncreaseReplicaCountInput(replicaGroup, pointer.ToIntAsInt32(newReplicaCount)) _, err := e.client.IncreaseReplicaCount(ctx, input) return err case desiredClusterSize < existingClusterSize: - input := elasticache.NewDecreaseReplicaCountInput(replicaGroup, pointer.Int32(newReplicaCount)) + input := elasticache.NewDecreaseReplicaCountInput(replicaGroup, pointer.ToIntAsInt32(newReplicaCount)) _, err := e.client.DecreaseReplicaCount(ctx, input) return err default: diff --git a/pkg/controller/cloudfront/cachepolicy/setup.go b/pkg/controller/cloudfront/cachepolicy/setup.go index 6cbc1804a5..69bf428a9e 100644 --- a/pkg/controller/cloudfront/cachepolicy/setup.go +++ b/pkg/controller/cloudfront/cachepolicy/setup.go @@ -93,7 +93,7 @@ func postCreate(_ context.Context, cp *svcapitypes.CachePolicy, cpo *svcsdk.Crea } func preObserve(_ context.Context, cp *svcapitypes.CachePolicy, gpi *svcsdk.GetCachePolicyInput) error { - gpi.Id = pointer.String(meta.GetExternalName(cp)) + gpi.Id = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cp)) return nil } @@ -107,13 +107,13 @@ func postObserve(_ context.Context, cp *svcapitypes.CachePolicy, _ *svcsdk.GetCa } func preUpdate(_ context.Context, cp *svcapitypes.CachePolicy, upi *svcsdk.UpdateCachePolicyInput) error { - upi.Id = pointer.String(meta.GetExternalName(cp)) + upi.Id = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cp)) upi.SetIfMatch(pointer.StringValue(cp.Status.AtProvider.ETag)) return nil } func preDelete(_ context.Context, cp *svcapitypes.CachePolicy, dpi *svcsdk.DeleteCachePolicyInput) (bool, error) { - dpi.Id = pointer.String(meta.GetExternalName(cp)) + dpi.Id = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cp)) dpi.SetIfMatch(pointer.StringValue(cp.Status.AtProvider.ETag)) return false, nil } diff --git a/pkg/controller/cloudfront/cloudfrontoriginaccessidentity/setup.go b/pkg/controller/cloudfront/cloudfrontoriginaccessidentity/setup.go index bf51f0e9d4..c81f73f6d0 100644 --- a/pkg/controller/cloudfront/cloudfrontoriginaccessidentity/setup.go +++ b/pkg/controller/cloudfront/cloudfrontoriginaccessidentity/setup.go @@ -83,7 +83,7 @@ func SetupCloudFrontOriginAccessIdentity(mgr ctrl.Manager, o controller.Options) } func preCreate(_ context.Context, cr *svcapitypes.CloudFrontOriginAccessIdentity, cdi *svcsdk.CreateCloudFrontOriginAccessIdentityInput) error { - cdi.CloudFrontOriginAccessIdentityConfig.CallerReference = pointer.String(string(cr.UID)) + cdi.CloudFrontOriginAccessIdentityConfig.CallerReference = pointer.ToOrNilIfZeroValue(string(cr.UID)) return nil } @@ -98,7 +98,7 @@ func postCreate(_ context.Context, cp *svcapitypes.CloudFrontOriginAccessIdentit } func preObserve(_ context.Context, cp *svcapitypes.CloudFrontOriginAccessIdentity, gpi *svcsdk.GetCloudFrontOriginAccessIdentityInput) error { - gpi.Id = pointer.String(meta.GetExternalName(cp)) + gpi.Id = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cp)) return nil } @@ -112,14 +112,14 @@ func postObserve(_ context.Context, cp *svcapitypes.CloudFrontOriginAccessIdenti } func preUpdate(_ context.Context, cp *svcapitypes.CloudFrontOriginAccessIdentity, upi *svcsdk.UpdateCloudFrontOriginAccessIdentityInput) error { - upi.CloudFrontOriginAccessIdentityConfig.CallerReference = pointer.String(string(cp.UID)) - upi.Id = pointer.String(meta.GetExternalName(cp)) + upi.CloudFrontOriginAccessIdentityConfig.CallerReference = pointer.ToOrNilIfZeroValue(string(cp.UID)) + upi.Id = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cp)) upi.SetIfMatch(pointer.StringValue(cp.Status.AtProvider.ETag)) return nil } func preDelete(_ context.Context, cp *svcapitypes.CloudFrontOriginAccessIdentity, dpi *svcsdk.DeleteCloudFrontOriginAccessIdentityInput) (bool, error) { - dpi.Id = pointer.String(meta.GetExternalName(cp)) + dpi.Id = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cp)) dpi.SetIfMatch(pointer.StringValue(cp.Status.AtProvider.ETag)) return false, nil } diff --git a/pkg/controller/cloudfront/distribution/lateinit.go b/pkg/controller/cloudfront/distribution/lateinit.go index f23179b959..f135c0de82 100644 --- a/pkg/controller/cloudfront/distribution/lateinit.go +++ b/pkg/controller/cloudfront/distribution/lateinit.go @@ -50,14 +50,14 @@ func lateInitialize(dp *svcapitypes.DistributionParameters, gdo *svcsdk.GetDistr // "CallerReference" is not exposed to users from the console, therefore we need to derive it from the AWS output // during import scenarios - in.CallerReference = pointer.LateInitializeStringPtr(in.CallerReference, from.CallerReference) + in.CallerReference = pointer.LateInitialize(in.CallerReference, from.CallerReference) if from.Aliases != nil { if in.Aliases == nil { in.Aliases = &svcapitypes.Aliases{} } - in.Aliases.Items = pointer.LateInitializeStringPtrSlice(in.Aliases.Items, from.Aliases.Items) + in.Aliases.Items = pointer.LateInitializeSlice(in.Aliases.Items, from.Aliases.Items) } if from.CacheBehaviors != nil { @@ -68,7 +68,7 @@ func lateInitialize(dp *svcapitypes.DistributionParameters, gdo *svcsdk.GetDistr lateInitCacheBehaviors(in.CacheBehaviors, from.CacheBehaviors) } - in.Comment = pointer.LateInitializeStringPtr(in.Comment, from.Comment) + in.Comment = pointer.LateInitialize(in.Comment, from.Comment) if from.CustomErrorResponses != nil { if in.CustomErrorResponses == nil { @@ -86,19 +86,19 @@ func lateInitialize(dp *svcapitypes.DistributionParameters, gdo *svcsdk.GetDistr lateInitDefaultCacheBehavior(in.DefaultCacheBehavior, from.DefaultCacheBehavior) } - in.DefaultRootObject = pointer.LateInitializeStringPtr(in.DefaultRootObject, from.DefaultRootObject) - in.Enabled = pointer.LateInitializeBoolPtr(in.Enabled, from.Enabled) - in.HTTPVersion = pointer.LateInitializeStringPtr(in.HTTPVersion, from.HttpVersion) - in.IsIPV6Enabled = pointer.LateInitializeBoolPtr(in.IsIPV6Enabled, from.IsIPV6Enabled) + in.DefaultRootObject = pointer.LateInitialize(in.DefaultRootObject, from.DefaultRootObject) + in.Enabled = pointer.LateInitialize(in.Enabled, from.Enabled) + in.HTTPVersion = pointer.LateInitialize(in.HTTPVersion, from.HttpVersion) + in.IsIPV6Enabled = pointer.LateInitialize(in.IsIPV6Enabled, from.IsIPV6Enabled) if from.Logging != nil { if in.Logging == nil { in.Logging = &svcapitypes.LoggingConfig{} } - in.Logging.Bucket = pointer.LateInitializeStringPtr(in.Logging.Bucket, from.Logging.Bucket) - in.Logging.Enabled = pointer.LateInitializeBoolPtr(in.Logging.Enabled, from.Logging.Enabled) - in.Logging.IncludeCookies = pointer.LateInitializeBoolPtr(in.Logging.IncludeCookies, from.Logging.IncludeCookies) - in.Logging.Prefix = pointer.LateInitializeStringPtr(in.Logging.Prefix, from.Logging.Prefix) + in.Logging.Bucket = pointer.LateInitialize(in.Logging.Bucket, from.Logging.Bucket) + in.Logging.Enabled = pointer.LateInitialize(in.Logging.Enabled, from.Logging.Enabled) + in.Logging.IncludeCookies = pointer.LateInitialize(in.Logging.IncludeCookies, from.Logging.IncludeCookies) + in.Logging.Prefix = pointer.LateInitialize(in.Logging.Prefix, from.Logging.Prefix) } if from.OriginGroups != nil { @@ -117,7 +117,7 @@ func lateInitialize(dp *svcapitypes.DistributionParameters, gdo *svcsdk.GetDistr lateInitOrigins(in.Origins, from.Origins) } - in.PriceClass = pointer.LateInitializeStringPtr(in.PriceClass, from.PriceClass) + in.PriceClass = pointer.LateInitialize(in.PriceClass, from.PriceClass) if from.Restrictions != nil { if in.Restrictions == nil { @@ -129,8 +129,8 @@ func lateInitialize(dp *svcapitypes.DistributionParameters, gdo *svcsdk.GetDistr in.Restrictions.GeoRestriction = &svcapitypes.GeoRestriction{} } - in.Restrictions.GeoRestriction.Items = pointer.LateInitializeStringPtrSlice(in.Restrictions.GeoRestriction.Items, from.Restrictions.GeoRestriction.Items) - in.Restrictions.GeoRestriction.RestrictionType = pointer.LateInitializeStringPtr(in.Restrictions.GeoRestriction.RestrictionType, from.Restrictions.GeoRestriction.RestrictionType) + in.Restrictions.GeoRestriction.Items = pointer.LateInitializeSlice(in.Restrictions.GeoRestriction.Items, from.Restrictions.GeoRestriction.Items) + in.Restrictions.GeoRestriction.RestrictionType = pointer.LateInitialize(in.Restrictions.GeoRestriction.RestrictionType, from.Restrictions.GeoRestriction.RestrictionType) } } if from.ViewerCertificate != nil { @@ -138,16 +138,16 @@ func lateInitialize(dp *svcapitypes.DistributionParameters, gdo *svcsdk.GetDistr in.ViewerCertificate = &svcapitypes.ViewerCertificate{} } - in.ViewerCertificate.ACMCertificateARN = pointer.LateInitializeStringPtr(in.ViewerCertificate.ACMCertificateARN, from.ViewerCertificate.ACMCertificateArn) - in.ViewerCertificate.Certificate = pointer.LateInitializeStringPtr(in.ViewerCertificate.Certificate, from.ViewerCertificate.Certificate) - in.ViewerCertificate.CertificateSource = pointer.LateInitializeStringPtr(in.ViewerCertificate.CertificateSource, from.ViewerCertificate.CertificateSource) - in.ViewerCertificate.CloudFrontDefaultCertificate = pointer.LateInitializeBoolPtr(in.ViewerCertificate.CloudFrontDefaultCertificate, from.ViewerCertificate.CloudFrontDefaultCertificate) - in.ViewerCertificate.IAMCertificateID = pointer.LateInitializeStringPtr(in.ViewerCertificate.IAMCertificateID, from.ViewerCertificate.IAMCertificateId) - in.ViewerCertificate.MinimumProtocolVersion = pointer.LateInitializeStringPtr(in.ViewerCertificate.MinimumProtocolVersion, from.ViewerCertificate.MinimumProtocolVersion) - in.ViewerCertificate.SSLSupportMethod = pointer.LateInitializeStringPtr(in.ViewerCertificate.SSLSupportMethod, from.ViewerCertificate.SSLSupportMethod) + in.ViewerCertificate.ACMCertificateARN = pointer.LateInitialize(in.ViewerCertificate.ACMCertificateARN, from.ViewerCertificate.ACMCertificateArn) + in.ViewerCertificate.Certificate = pointer.LateInitialize(in.ViewerCertificate.Certificate, from.ViewerCertificate.Certificate) + in.ViewerCertificate.CertificateSource = pointer.LateInitialize(in.ViewerCertificate.CertificateSource, from.ViewerCertificate.CertificateSource) + in.ViewerCertificate.CloudFrontDefaultCertificate = pointer.LateInitialize(in.ViewerCertificate.CloudFrontDefaultCertificate, from.ViewerCertificate.CloudFrontDefaultCertificate) + in.ViewerCertificate.IAMCertificateID = pointer.LateInitialize(in.ViewerCertificate.IAMCertificateID, from.ViewerCertificate.IAMCertificateId) + in.ViewerCertificate.MinimumProtocolVersion = pointer.LateInitialize(in.ViewerCertificate.MinimumProtocolVersion, from.ViewerCertificate.MinimumProtocolVersion) + in.ViewerCertificate.SSLSupportMethod = pointer.LateInitialize(in.ViewerCertificate.SSLSupportMethod, from.ViewerCertificate.SSLSupportMethod) } - in.WebACLID = pointer.LateInitializeStringPtr(in.WebACLID, from.WebACLId) + in.WebACLID = pointer.LateInitialize(in.WebACLID, from.WebACLId) return nil } @@ -158,21 +158,21 @@ func lateInitDefaultCacheBehavior(in *svcapitypes.DefaultCacheBehavior, from *sv in.AllowedMethods = &svcapitypes.AllowedMethods{} } - in.AllowedMethods.Items = pointer.LateInitializeStringPtrSlice(in.AllowedMethods.Items, from.AllowedMethods.Items) + in.AllowedMethods.Items = pointer.LateInitializeSlice(in.AllowedMethods.Items, from.AllowedMethods.Items) if from.AllowedMethods.CachedMethods != nil { if in.AllowedMethods.CachedMethods == nil { in.AllowedMethods.CachedMethods = &svcapitypes.CachedMethods{} } - in.AllowedMethods.CachedMethods.Items = pointer.LateInitializeStringPtrSlice(in.AllowedMethods.CachedMethods.Items, from.AllowedMethods.CachedMethods.Items) + in.AllowedMethods.CachedMethods.Items = pointer.LateInitializeSlice(in.AllowedMethods.CachedMethods.Items, from.AllowedMethods.CachedMethods.Items) } } - in.CachePolicyID = pointer.LateInitializeStringPtr(in.CachePolicyID, from.CachePolicyId) - in.Compress = pointer.LateInitializeBoolPtr(in.Compress, from.Compress) - in.DefaultTTL = pointer.LateInitializeInt64Ptr(in.DefaultTTL, from.DefaultTTL) - in.FieldLevelEncryptionID = pointer.LateInitializeStringPtr(in.FieldLevelEncryptionID, from.FieldLevelEncryptionId) + in.CachePolicyID = pointer.LateInitialize(in.CachePolicyID, from.CachePolicyId) + in.Compress = pointer.LateInitialize(in.Compress, from.Compress) + in.DefaultTTL = pointer.LateInitialize(in.DefaultTTL, from.DefaultTTL) + in.FieldLevelEncryptionID = pointer.LateInitialize(in.FieldLevelEncryptionID, from.FieldLevelEncryptionId) if from.ForwardedValues != nil { if in.ForwardedValues == nil { @@ -184,14 +184,14 @@ func lateInitDefaultCacheBehavior(in *svcapitypes.DefaultCacheBehavior, from *sv in.ForwardedValues.Cookies = &svcapitypes.CookiePreference{} } - in.ForwardedValues.Cookies.Forward = pointer.LateInitializeStringPtr(in.ForwardedValues.Cookies.Forward, from.ForwardedValues.Cookies.Forward) + in.ForwardedValues.Cookies.Forward = pointer.LateInitialize(in.ForwardedValues.Cookies.Forward, from.ForwardedValues.Cookies.Forward) if from.ForwardedValues.Cookies.WhitelistedNames != nil { if in.ForwardedValues.Cookies.WhitelistedNames == nil { in.ForwardedValues.Cookies.WhitelistedNames = &svcapitypes.CookieNames{} } - in.ForwardedValues.Cookies.WhitelistedNames.Items = pointer.LateInitializeStringPtrSlice(in.ForwardedValues.Cookies.WhitelistedNames.Items, from.ForwardedValues.Cookies.WhitelistedNames.Items) + in.ForwardedValues.Cookies.WhitelistedNames.Items = pointer.LateInitializeSlice(in.ForwardedValues.Cookies.WhitelistedNames.Items, from.ForwardedValues.Cookies.WhitelistedNames.Items) } } @@ -200,17 +200,17 @@ func lateInitDefaultCacheBehavior(in *svcapitypes.DefaultCacheBehavior, from *sv in.ForwardedValues.Headers = &svcapitypes.Headers{} } - in.ForwardedValues.Headers.Items = pointer.LateInitializeStringPtrSlice(in.ForwardedValues.Headers.Items, from.ForwardedValues.Headers.Items) + in.ForwardedValues.Headers.Items = pointer.LateInitializeSlice(in.ForwardedValues.Headers.Items, from.ForwardedValues.Headers.Items) } - in.ForwardedValues.QueryString = pointer.LateInitializeBoolPtr(in.ForwardedValues.QueryString, from.ForwardedValues.QueryString) + in.ForwardedValues.QueryString = pointer.LateInitialize(in.ForwardedValues.QueryString, from.ForwardedValues.QueryString) if from.ForwardedValues.QueryStringCacheKeys != nil { if in.ForwardedValues.QueryStringCacheKeys == nil { in.ForwardedValues.QueryStringCacheKeys = &svcapitypes.QueryStringCacheKeys{} } - in.ForwardedValues.QueryStringCacheKeys.Items = pointer.LateInitializeStringPtrSlice(in.ForwardedValues.QueryStringCacheKeys.Items, from.ForwardedValues.QueryStringCacheKeys.Items) + in.ForwardedValues.QueryStringCacheKeys.Items = pointer.LateInitializeSlice(in.ForwardedValues.QueryStringCacheKeys.Items, from.ForwardedValues.QueryStringCacheKeys.Items) } } @@ -228,21 +228,21 @@ func lateInitDefaultCacheBehavior(in *svcapitypes.DefaultCacheBehavior, from *sv lateInitLambdaFunctionAssociations(in.LambdaFunctionAssociations, from.LambdaFunctionAssociations) } - in.MaxTTL = pointer.LateInitializeInt64Ptr(in.MaxTTL, from.MaxTTL) - in.MinTTL = pointer.LateInitializeInt64Ptr(in.MinTTL, from.MinTTL) - in.OriginRequestPolicyID = pointer.LateInitializeStringPtr(in.OriginRequestPolicyID, from.OriginRequestPolicyId) - in.RealtimeLogConfigARN = pointer.LateInitializeStringPtr(in.RealtimeLogConfigARN, from.RealtimeLogConfigArn) - in.SmoothStreaming = pointer.LateInitializeBoolPtr(in.SmoothStreaming, from.SmoothStreaming) - in.ResponseHeadersPolicyID = pointer.LateInitializeStringPtr(in.ResponseHeadersPolicyID, from.ResponseHeadersPolicyId) - in.TargetOriginID = pointer.LateInitializeStringPtr(in.TargetOriginID, from.TargetOriginId) + in.MaxTTL = pointer.LateInitialize(in.MaxTTL, from.MaxTTL) + in.MinTTL = pointer.LateInitialize(in.MinTTL, from.MinTTL) + in.OriginRequestPolicyID = pointer.LateInitialize(in.OriginRequestPolicyID, from.OriginRequestPolicyId) + in.RealtimeLogConfigARN = pointer.LateInitialize(in.RealtimeLogConfigARN, from.RealtimeLogConfigArn) + in.SmoothStreaming = pointer.LateInitialize(in.SmoothStreaming, from.SmoothStreaming) + in.ResponseHeadersPolicyID = pointer.LateInitialize(in.ResponseHeadersPolicyID, from.ResponseHeadersPolicyId) + in.TargetOriginID = pointer.LateInitialize(in.TargetOriginID, from.TargetOriginId) if from.TrustedKeyGroups != nil { if in.TrustedKeyGroups == nil { in.TrustedKeyGroups = &svcapitypes.TrustedKeyGroups{} } - in.TrustedKeyGroups.Enabled = pointer.LateInitializeBoolPtr(in.TrustedKeyGroups.Enabled, from.TrustedKeyGroups.Enabled) - in.TrustedKeyGroups.Items = pointer.LateInitializeStringPtrSlice(in.TrustedKeyGroups.Items, from.TrustedKeyGroups.Items) + in.TrustedKeyGroups.Enabled = pointer.LateInitialize(in.TrustedKeyGroups.Enabled, from.TrustedKeyGroups.Enabled) + in.TrustedKeyGroups.Items = pointer.LateInitializeSlice(in.TrustedKeyGroups.Items, from.TrustedKeyGroups.Items) } if from.TrustedSigners != nil { @@ -250,11 +250,11 @@ func lateInitDefaultCacheBehavior(in *svcapitypes.DefaultCacheBehavior, from *sv in.TrustedSigners = &svcapitypes.TrustedSigners{} } - in.TrustedSigners.Enabled = pointer.LateInitializeBoolPtr(in.TrustedSigners.Enabled, from.TrustedSigners.Enabled) - in.TrustedSigners.Items = pointer.LateInitializeStringPtrSlice(in.TrustedSigners.Items, from.TrustedSigners.Items) + in.TrustedSigners.Enabled = pointer.LateInitialize(in.TrustedSigners.Enabled, from.TrustedSigners.Enabled) + in.TrustedSigners.Items = pointer.LateInitializeSlice(in.TrustedSigners.Items, from.TrustedSigners.Items) } - in.ViewerProtocolPolicy = pointer.LateInitializeStringPtr(in.ViewerProtocolPolicy, from.ViewerProtocolPolicy) + in.ViewerProtocolPolicy = pointer.LateInitialize(in.ViewerProtocolPolicy, from.ViewerProtocolPolicy) } func lateInitCacheBehaviors(in *svcapitypes.CacheBehaviors, from *svcsdk.CacheBehaviors) { @@ -307,21 +307,21 @@ func lateInitCacheBehavior(in *svcapitypes.CacheBehavior, from *svcsdk.CacheBeha in.AllowedMethods = &svcapitypes.AllowedMethods{} } - in.AllowedMethods.Items = pointer.LateInitializeStringPtrSlice(in.AllowedMethods.Items, from.AllowedMethods.Items) + in.AllowedMethods.Items = pointer.LateInitializeSlice(in.AllowedMethods.Items, from.AllowedMethods.Items) if from.AllowedMethods.CachedMethods != nil { if in.AllowedMethods.CachedMethods == nil { in.AllowedMethods.CachedMethods = &svcapitypes.CachedMethods{} } - in.AllowedMethods.CachedMethods.Items = pointer.LateInitializeStringPtrSlice(in.AllowedMethods.CachedMethods.Items, from.AllowedMethods.CachedMethods.Items) + in.AllowedMethods.CachedMethods.Items = pointer.LateInitializeSlice(in.AllowedMethods.CachedMethods.Items, from.AllowedMethods.CachedMethods.Items) } } - in.CachePolicyID = pointer.LateInitializeStringPtr(in.CachePolicyID, from.CachePolicyId) - in.Compress = pointer.LateInitializeBoolPtr(in.Compress, from.Compress) - in.DefaultTTL = pointer.LateInitializeInt64Ptr(in.DefaultTTL, from.DefaultTTL) - in.FieldLevelEncryptionID = pointer.LateInitializeStringPtr(in.FieldLevelEncryptionID, from.FieldLevelEncryptionId) + in.CachePolicyID = pointer.LateInitialize(in.CachePolicyID, from.CachePolicyId) + in.Compress = pointer.LateInitialize(in.Compress, from.Compress) + in.DefaultTTL = pointer.LateInitialize(in.DefaultTTL, from.DefaultTTL) + in.FieldLevelEncryptionID = pointer.LateInitialize(in.FieldLevelEncryptionID, from.FieldLevelEncryptionId) if from.ForwardedValues != nil { if in.ForwardedValues == nil { @@ -333,14 +333,14 @@ func lateInitCacheBehavior(in *svcapitypes.CacheBehavior, from *svcsdk.CacheBeha in.ForwardedValues.Cookies = &svcapitypes.CookiePreference{} } - in.ForwardedValues.Cookies.Forward = pointer.LateInitializeStringPtr(in.ForwardedValues.Cookies.Forward, from.ForwardedValues.Cookies.Forward) + in.ForwardedValues.Cookies.Forward = pointer.LateInitialize(in.ForwardedValues.Cookies.Forward, from.ForwardedValues.Cookies.Forward) if from.ForwardedValues.Cookies.WhitelistedNames != nil { if in.ForwardedValues.Cookies.WhitelistedNames == nil { in.ForwardedValues.Cookies.WhitelistedNames = &svcapitypes.CookieNames{} } - in.ForwardedValues.Cookies.WhitelistedNames.Items = pointer.LateInitializeStringPtrSlice(in.ForwardedValues.Cookies.WhitelistedNames.Items, from.ForwardedValues.Cookies.WhitelistedNames.Items) + in.ForwardedValues.Cookies.WhitelistedNames.Items = pointer.LateInitializeSlice(in.ForwardedValues.Cookies.WhitelistedNames.Items, from.ForwardedValues.Cookies.WhitelistedNames.Items) } } @@ -349,17 +349,17 @@ func lateInitCacheBehavior(in *svcapitypes.CacheBehavior, from *svcsdk.CacheBeha in.ForwardedValues.Headers = &svcapitypes.Headers{} } - in.ForwardedValues.Headers.Items = pointer.LateInitializeStringPtrSlice(in.ForwardedValues.Headers.Items, from.ForwardedValues.Headers.Items) + in.ForwardedValues.Headers.Items = pointer.LateInitializeSlice(in.ForwardedValues.Headers.Items, from.ForwardedValues.Headers.Items) } - in.ForwardedValues.QueryString = pointer.LateInitializeBoolPtr(in.ForwardedValues.QueryString, from.ForwardedValues.QueryString) + in.ForwardedValues.QueryString = pointer.LateInitialize(in.ForwardedValues.QueryString, from.ForwardedValues.QueryString) if from.ForwardedValues.QueryStringCacheKeys != nil { if in.ForwardedValues.QueryStringCacheKeys == nil { in.ForwardedValues.QueryStringCacheKeys = &svcapitypes.QueryStringCacheKeys{} } - in.ForwardedValues.QueryStringCacheKeys.Items = pointer.LateInitializeStringPtrSlice(in.ForwardedValues.QueryStringCacheKeys.Items, from.ForwardedValues.QueryStringCacheKeys.Items) + in.ForwardedValues.QueryStringCacheKeys.Items = pointer.LateInitializeSlice(in.ForwardedValues.QueryStringCacheKeys.Items, from.ForwardedValues.QueryStringCacheKeys.Items) } } @@ -371,22 +371,22 @@ func lateInitCacheBehavior(in *svcapitypes.CacheBehavior, from *svcsdk.CacheBeha lateInitLambdaFunctionAssociations(in.LambdaFunctionAssociations, from.LambdaFunctionAssociations) } - in.MaxTTL = pointer.LateInitializeInt64Ptr(in.MaxTTL, from.MaxTTL) - in.MinTTL = pointer.LateInitializeInt64Ptr(in.MinTTL, from.MinTTL) - in.OriginRequestPolicyID = pointer.LateInitializeStringPtr(in.OriginRequestPolicyID, from.OriginRequestPolicyId) - in.PathPattern = pointer.LateInitializeStringPtr(in.PathPattern, from.PathPattern) - in.RealtimeLogConfigARN = pointer.LateInitializeStringPtr(in.RealtimeLogConfigARN, from.RealtimeLogConfigArn) - in.SmoothStreaming = pointer.LateInitializeBoolPtr(in.SmoothStreaming, from.SmoothStreaming) - in.TargetOriginID = pointer.LateInitializeStringPtr(in.TargetOriginID, from.TargetOriginId) - in.ResponseHeadersPolicyID = pointer.LateInitializeStringPtr(in.ResponseHeadersPolicyID, from.ResponseHeadersPolicyId) + in.MaxTTL = pointer.LateInitialize(in.MaxTTL, from.MaxTTL) + in.MinTTL = pointer.LateInitialize(in.MinTTL, from.MinTTL) + in.OriginRequestPolicyID = pointer.LateInitialize(in.OriginRequestPolicyID, from.OriginRequestPolicyId) + in.PathPattern = pointer.LateInitialize(in.PathPattern, from.PathPattern) + in.RealtimeLogConfigARN = pointer.LateInitialize(in.RealtimeLogConfigARN, from.RealtimeLogConfigArn) + in.SmoothStreaming = pointer.LateInitialize(in.SmoothStreaming, from.SmoothStreaming) + in.TargetOriginID = pointer.LateInitialize(in.TargetOriginID, from.TargetOriginId) + in.ResponseHeadersPolicyID = pointer.LateInitialize(in.ResponseHeadersPolicyID, from.ResponseHeadersPolicyId) if from.TrustedKeyGroups != nil && *from.TrustedKeyGroups.Enabled && len(from.TrustedKeyGroups.Items) != 0 { if in.TrustedKeyGroups == nil { in.TrustedKeyGroups = &svcapitypes.TrustedKeyGroups{} } - in.TrustedKeyGroups.Enabled = pointer.LateInitializeBoolPtr(in.TrustedKeyGroups.Enabled, from.TrustedKeyGroups.Enabled) - in.TrustedKeyGroups.Items = pointer.LateInitializeStringPtrSlice(in.TrustedKeyGroups.Items, from.TrustedKeyGroups.Items) + in.TrustedKeyGroups.Enabled = pointer.LateInitialize(in.TrustedKeyGroups.Enabled, from.TrustedKeyGroups.Enabled) + in.TrustedKeyGroups.Items = pointer.LateInitializeSlice(in.TrustedKeyGroups.Items, from.TrustedKeyGroups.Items) } if from.TrustedSigners != nil && *from.TrustedSigners.Enabled && len(from.TrustedSigners.Items) != 0 { @@ -394,11 +394,11 @@ func lateInitCacheBehavior(in *svcapitypes.CacheBehavior, from *svcsdk.CacheBeha in.TrustedSigners = &svcapitypes.TrustedSigners{} } - in.TrustedSigners.Enabled = pointer.LateInitializeBoolPtr(in.TrustedSigners.Enabled, from.TrustedSigners.Enabled) - in.TrustedSigners.Items = pointer.LateInitializeStringPtrSlice(in.TrustedSigners.Items, from.TrustedSigners.Items) + in.TrustedSigners.Enabled = pointer.LateInitialize(in.TrustedSigners.Enabled, from.TrustedSigners.Enabled) + in.TrustedSigners.Items = pointer.LateInitializeSlice(in.TrustedSigners.Items, from.TrustedSigners.Items) } - in.ViewerProtocolPolicy = pointer.LateInitializeStringPtr(in.ViewerProtocolPolicy, from.ViewerProtocolPolicy) + in.ViewerProtocolPolicy = pointer.LateInitialize(in.ViewerProtocolPolicy, from.ViewerProtocolPolicy) } func lateInitCustomErrorResponses(in *svcapitypes.CustomErrorResponses, from *svcsdk.CustomErrorResponses) { @@ -444,10 +444,10 @@ func lateInitCustomErrorResponses(in *svcapitypes.CustomErrorResponses, from *sv } func lateInitCustomErrorResponse(in *svcapitypes.CustomErrorResponse, from *svcsdk.CustomErrorResponse) { - in.ErrorCachingMinTTL = pointer.LateInitializeInt64Ptr(in.ErrorCachingMinTTL, from.ErrorCachingMinTTL) - in.ErrorCode = pointer.LateInitializeInt64Ptr(in.ErrorCode, from.ErrorCode) - in.ResponseCode = pointer.LateInitializeStringPtr(in.ResponseCode, from.ResponseCode) - in.ResponsePagePath = pointer.LateInitializeStringPtr(in.ResponsePagePath, from.ResponsePagePath) + in.ErrorCachingMinTTL = pointer.LateInitialize(in.ErrorCachingMinTTL, from.ErrorCachingMinTTL) + in.ErrorCode = pointer.LateInitialize(in.ErrorCode, from.ErrorCode) + in.ResponseCode = pointer.LateInitialize(in.ResponseCode, from.ResponseCode) + in.ResponsePagePath = pointer.LateInitialize(in.ResponsePagePath, from.ResponsePagePath) } func lateInitOriginGroups(in *svcapitypes.OriginGroups, from *svcsdk.OriginGroups) { @@ -502,11 +502,11 @@ func lateInitOriginGroup(in *svcapitypes.OriginGroup, from *svcsdk.OriginGroup) in.FailoverCriteria.StatusCodes = &svcapitypes.StatusCodes{} } - in.FailoverCriteria.StatusCodes.Items = pointer.LateInitializeInt64PtrSlice(in.FailoverCriteria.StatusCodes.Items, from.FailoverCriteria.StatusCodes.Items) + in.FailoverCriteria.StatusCodes.Items = pointer.LateInitializeSlice(in.FailoverCriteria.StatusCodes.Items, from.FailoverCriteria.StatusCodes.Items) } } - in.ID = pointer.LateInitializeStringPtr(in.ID, from.Id) + in.ID = pointer.LateInitialize(in.ID, from.Id) if from.Members != nil { if in.Members == nil { @@ -533,7 +533,7 @@ func lateInitOriginGroupMembers(in *svcapitypes.OriginGroupMembers, from *svcsdk } func lateInitOriginGroupMember(in *svcapitypes.OriginGroupMember, from *svcsdk.OriginGroupMember) { - in.OriginID = pointer.LateInitializeStringPtr(in.OriginID, from.OriginId) + in.OriginID = pointer.LateInitialize(in.OriginID, from.OriginId) } // NOTE(negz): The CloudFront API relies heavily on late-initialization. There @@ -595,8 +595,8 @@ func lateInitOrigins(in *svcapitypes.Origins, from *svcsdk.Origins) { } func lateInitOrigin(in *svcapitypes.Origin, from *svcsdk.Origin) { - in.ConnectionAttempts = pointer.LateInitializeInt64Ptr(in.ConnectionAttempts, from.ConnectionAttempts) - in.ConnectionTimeout = pointer.LateInitializeInt64Ptr(in.ConnectionTimeout, from.ConnectionTimeout) + in.ConnectionAttempts = pointer.LateInitialize(in.ConnectionAttempts, from.ConnectionAttempts) + in.ConnectionTimeout = pointer.LateInitialize(in.ConnectionTimeout, from.ConnectionTimeout) if from.CustomHeaders != nil { if in.CustomHeaders == nil { @@ -611,32 +611,32 @@ func lateInitOrigin(in *svcapitypes.Origin, from *svcsdk.Origin) { in.CustomOriginConfig = &svcapitypes.CustomOriginConfig{} } - in.CustomOriginConfig.HTTPPort = pointer.LateInitializeInt64Ptr(in.CustomOriginConfig.HTTPPort, from.CustomOriginConfig.HTTPPort) - in.CustomOriginConfig.HTTPSPort = pointer.LateInitializeInt64Ptr(in.CustomOriginConfig.HTTPSPort, from.CustomOriginConfig.HTTPSPort) - in.CustomOriginConfig.OriginKeepaliveTimeout = pointer.LateInitializeInt64Ptr(in.CustomOriginConfig.OriginKeepaliveTimeout, from.CustomOriginConfig.OriginKeepaliveTimeout) - in.CustomOriginConfig.OriginProtocolPolicy = pointer.LateInitializeStringPtr(in.CustomOriginConfig.OriginProtocolPolicy, from.CustomOriginConfig.OriginProtocolPolicy) - in.CustomOriginConfig.OriginReadTimeout = pointer.LateInitializeInt64Ptr(in.CustomOriginConfig.OriginReadTimeout, from.CustomOriginConfig.OriginReadTimeout) + in.CustomOriginConfig.HTTPPort = pointer.LateInitialize(in.CustomOriginConfig.HTTPPort, from.CustomOriginConfig.HTTPPort) + in.CustomOriginConfig.HTTPSPort = pointer.LateInitialize(in.CustomOriginConfig.HTTPSPort, from.CustomOriginConfig.HTTPSPort) + in.CustomOriginConfig.OriginKeepaliveTimeout = pointer.LateInitialize(in.CustomOriginConfig.OriginKeepaliveTimeout, from.CustomOriginConfig.OriginKeepaliveTimeout) + in.CustomOriginConfig.OriginProtocolPolicy = pointer.LateInitialize(in.CustomOriginConfig.OriginProtocolPolicy, from.CustomOriginConfig.OriginProtocolPolicy) + in.CustomOriginConfig.OriginReadTimeout = pointer.LateInitialize(in.CustomOriginConfig.OriginReadTimeout, from.CustomOriginConfig.OriginReadTimeout) if from.CustomOriginConfig.OriginSslProtocols != nil { if in.CustomOriginConfig.OriginSSLProtocols == nil { in.CustomOriginConfig.OriginSSLProtocols = &svcapitypes.OriginSSLProtocols{} } - in.CustomOriginConfig.OriginSSLProtocols.Items = pointer.LateInitializeStringPtrSlice(in.CustomOriginConfig.OriginSSLProtocols.Items, from.CustomOriginConfig.OriginSslProtocols.Items) + in.CustomOriginConfig.OriginSSLProtocols.Items = pointer.LateInitializeSlice(in.CustomOriginConfig.OriginSSLProtocols.Items, from.CustomOriginConfig.OriginSslProtocols.Items) } } - in.DomainName = pointer.LateInitializeStringPtr(in.DomainName, from.DomainName) - in.ID = pointer.LateInitializeStringPtr(in.ID, from.Id) - in.OriginPath = pointer.LateInitializeStringPtr(in.OriginPath, from.OriginPath) + in.DomainName = pointer.LateInitialize(in.DomainName, from.DomainName) + in.ID = pointer.LateInitialize(in.ID, from.Id) + in.OriginPath = pointer.LateInitialize(in.OriginPath, from.OriginPath) if from.OriginShield != nil { if in.OriginShield == nil { in.OriginShield = &svcapitypes.OriginShield{} } - in.OriginShield.Enabled = pointer.LateInitializeBoolPtr(in.OriginShield.Enabled, from.OriginShield.Enabled) - in.OriginShield.OriginShieldRegion = pointer.LateInitializeStringPtr(in.OriginShield.OriginShieldRegion, from.OriginShield.OriginShieldRegion) + in.OriginShield.Enabled = pointer.LateInitialize(in.OriginShield.Enabled, from.OriginShield.Enabled) + in.OriginShield.OriginShieldRegion = pointer.LateInitialize(in.OriginShield.OriginShieldRegion, from.OriginShield.OriginShieldRegion) } if from.S3OriginConfig != nil { @@ -644,7 +644,7 @@ func lateInitOrigin(in *svcapitypes.Origin, from *svcsdk.Origin) { in.S3OriginConfig = &svcapitypes.S3OriginConfig{} } - in.S3OriginConfig.OriginAccessIdentity = pointer.LateInitializeStringPtr(in.S3OriginConfig.OriginAccessIdentity, from.S3OriginConfig.OriginAccessIdentity) + in.S3OriginConfig.OriginAccessIdentity = pointer.LateInitialize(in.S3OriginConfig.OriginAccessIdentity, from.S3OriginConfig.OriginAccessIdentity) } } @@ -686,8 +686,8 @@ func lateInitOriginCustomHeaders(in *svcapitypes.CustomHeaders, from *svcsdk.Cus } func lateInitOriginCustomHeader(in *svcapitypes.OriginCustomHeader, from *svcsdk.OriginCustomHeader) { - in.HeaderName = pointer.LateInitializeStringPtr(in.HeaderName, from.HeaderName) - in.HeaderValue = pointer.LateInitializeStringPtr(in.HeaderValue, from.HeaderValue) + in.HeaderName = pointer.LateInitialize(in.HeaderName, from.HeaderName) + in.HeaderValue = pointer.LateInitialize(in.HeaderValue, from.HeaderValue) } func lateInitLambdaFunctionAssociations(in *svcapitypes.LambdaFunctionAssociations, from *svcsdk.LambdaFunctionAssociations) { @@ -733,9 +733,9 @@ func lateInitLambdaFunctionAssociations(in *svcapitypes.LambdaFunctionAssociatio } func lateInitLambdaFunctionAssociation(in *svcapitypes.LambdaFunctionAssociation, from *svcsdk.LambdaFunctionAssociation) { - in.EventType = pointer.LateInitializeStringPtr(in.EventType, from.EventType) - in.IncludeBody = pointer.LateInitializeBoolPtr(in.IncludeBody, from.IncludeBody) - in.LambdaFunctionARN = pointer.LateInitializeStringPtr(in.LambdaFunctionARN, from.LambdaFunctionARN) + in.EventType = pointer.LateInitialize(in.EventType, from.EventType) + in.IncludeBody = pointer.LateInitialize(in.IncludeBody, from.IncludeBody) + in.LambdaFunctionARN = pointer.LateInitialize(in.LambdaFunctionARN, from.LambdaFunctionARN) } func lateInitFunctionAssociations(in *svcapitypes.FunctionAssociations, from *svcsdk.FunctionAssociations) { @@ -780,6 +780,6 @@ func lateInitFunctionAssociations(in *svcapitypes.FunctionAssociations, from *sv } func lateInitFunctionAssociation(in *svcapitypes.FunctionAssociation, from *svcsdk.FunctionAssociation) { - in.EventType = pointer.LateInitializeStringPtr(in.EventType, from.EventType) - in.FunctionARN = pointer.LateInitializeStringPtr(in.FunctionARN, from.FunctionARN) + in.EventType = pointer.LateInitialize(in.EventType, from.EventType) + in.FunctionARN = pointer.LateInitialize(in.FunctionARN, from.FunctionARN) } diff --git a/pkg/controller/cloudfront/distribution/lateinit_test.go b/pkg/controller/cloudfront/distribution/lateinit_test.go index 8bfa526f2a..e338aa26a1 100644 --- a/pkg/controller/cloudfront/distribution/lateinit_test.go +++ b/pkg/controller/cloudfront/distribution/lateinit_test.go @@ -21,6 +21,7 @@ import ( svcsdk "github.com/aws/aws-sdk-go/service/cloudfront" "github.com/google/go-cmp/cmp" + "k8s.io/utils/ptr" svcapitypes "github.com/crossplane-contrib/provider-aws/apis/cloudfront/v1alpha1" "github.com/crossplane-contrib/provider-aws/pkg/utils/pointer" @@ -142,188 +143,188 @@ func TestLateInitialize(t *testing.T) { Distribution: &svcsdk.Distribution{ DistributionConfig: &svcsdk.DistributionConfig{ Aliases: &svcsdk.Aliases{ - Items: []*string{pointer.String("example.org")}, + Items: []*string{pointer.ToOrNilIfZeroValue("example.org")}, }, CacheBehaviors: &svcsdk.CacheBehaviors{ Items: []*svcsdk.CacheBehavior{{ AllowedMethods: &svcsdk.AllowedMethods{ - Items: []*string{pointer.String("GET")}, + Items: []*string{pointer.ToOrNilIfZeroValue("GET")}, CachedMethods: &svcsdk.CachedMethods{ - Items: []*string{pointer.String("GET")}, + Items: []*string{pointer.ToOrNilIfZeroValue("GET")}, }, }, - CachePolicyId: pointer.String("example"), - Compress: pointer.Bool(true), - DefaultTTL: pointer.Int64(42), - FieldLevelEncryptionId: pointer.String("example"), + CachePolicyId: pointer.ToOrNilIfZeroValue("example"), + Compress: pointer.ToOrNilIfZeroValue(true), + DefaultTTL: ptr.To[int64](42), + FieldLevelEncryptionId: pointer.ToOrNilIfZeroValue("example"), ForwardedValues: &svcsdk.ForwardedValues{ Cookies: &svcsdk.CookiePreference{ - Forward: pointer.String("example"), + Forward: pointer.ToOrNilIfZeroValue("example"), WhitelistedNames: &svcsdk.CookieNames{ - Items: []*string{pointer.String("example")}, + Items: []*string{pointer.ToOrNilIfZeroValue("example")}, }, }, Headers: &svcsdk.Headers{ - Items: []*string{pointer.String("X-Hello")}, + Items: []*string{pointer.ToOrNilIfZeroValue("X-Hello")}, }, - QueryString: pointer.Bool(true), + QueryString: pointer.ToOrNilIfZeroValue(true), QueryStringCacheKeys: &svcsdk.QueryStringCacheKeys{ - Items: []*string{pointer.String("search")}, + Items: []*string{pointer.ToOrNilIfZeroValue("search")}, }, }, LambdaFunctionAssociations: &svcsdk.LambdaFunctionAssociations{ Items: []*svcsdk.LambdaFunctionAssociation{{ - EventType: pointer.String("good"), - IncludeBody: pointer.Bool(true), - LambdaFunctionARN: pointer.String("arn"), + EventType: pointer.ToOrNilIfZeroValue("good"), + IncludeBody: pointer.ToOrNilIfZeroValue(true), + LambdaFunctionARN: pointer.ToOrNilIfZeroValue("arn"), }}, }, - MaxTTL: pointer.Int64(42), - MinTTL: pointer.Int64(42), - OriginRequestPolicyId: pointer.String("example"), - PathPattern: pointer.String("example"), - RealtimeLogConfigArn: pointer.String("example"), - SmoothStreaming: pointer.Bool(true), - TargetOriginId: pointer.String("example"), + MaxTTL: ptr.To[int64](42), + MinTTL: ptr.To[int64](42), + OriginRequestPolicyId: pointer.ToOrNilIfZeroValue("example"), + PathPattern: pointer.ToOrNilIfZeroValue("example"), + RealtimeLogConfigArn: pointer.ToOrNilIfZeroValue("example"), + SmoothStreaming: pointer.ToOrNilIfZeroValue(true), + TargetOriginId: pointer.ToOrNilIfZeroValue("example"), TrustedKeyGroups: &svcsdk.TrustedKeyGroups{ - Enabled: pointer.Bool(true), - Items: []*string{pointer.String("the-good-key")}, + Enabled: pointer.ToOrNilIfZeroValue(true), + Items: []*string{pointer.ToOrNilIfZeroValue("the-good-key")}, }, TrustedSigners: &svcsdk.TrustedSigners{ - Enabled: pointer.Bool(true), - Items: []*string{pointer.String("the-good-signer")}, + Enabled: pointer.ToOrNilIfZeroValue(true), + Items: []*string{pointer.ToOrNilIfZeroValue("the-good-signer")}, }, }}, }, CustomErrorResponses: &svcsdk.CustomErrorResponses{ Items: []*svcsdk.CustomErrorResponse{{ - ErrorCachingMinTTL: pointer.Int64(42), - ErrorCode: pointer.Int64(418), - ResponseCode: pointer.String("I'm a teapot"), - ResponsePagePath: pointer.String("/teapot"), + ErrorCachingMinTTL: ptr.To[int64](42), + ErrorCode: ptr.To[int64](418), + ResponseCode: pointer.ToOrNilIfZeroValue("I'm a teapot"), + ResponsePagePath: pointer.ToOrNilIfZeroValue("/teapot"), }}, }, DefaultCacheBehavior: &svcsdk.DefaultCacheBehavior{ AllowedMethods: &svcsdk.AllowedMethods{ - Items: []*string{pointer.String("GET")}, + Items: []*string{pointer.ToOrNilIfZeroValue("GET")}, CachedMethods: &svcsdk.CachedMethods{ - Items: []*string{pointer.String("GET")}, + Items: []*string{pointer.ToOrNilIfZeroValue("GET")}, }, }, - CachePolicyId: pointer.String("example"), - Compress: pointer.Bool(true), - DefaultTTL: pointer.Int64(42), - FieldLevelEncryptionId: pointer.String("example"), + CachePolicyId: pointer.ToOrNilIfZeroValue("example"), + Compress: pointer.ToOrNilIfZeroValue(true), + DefaultTTL: ptr.To[int64](42), + FieldLevelEncryptionId: pointer.ToOrNilIfZeroValue("example"), ForwardedValues: &svcsdk.ForwardedValues{ Cookies: &svcsdk.CookiePreference{ - Forward: pointer.String("example"), + Forward: pointer.ToOrNilIfZeroValue("example"), WhitelistedNames: &svcsdk.CookieNames{ - Items: []*string{pointer.String("example")}, + Items: []*string{pointer.ToOrNilIfZeroValue("example")}, }, }, Headers: &svcsdk.Headers{ - Items: []*string{pointer.String("X-Hello")}, + Items: []*string{pointer.ToOrNilIfZeroValue("X-Hello")}, }, - QueryString: pointer.Bool(true), + QueryString: pointer.ToOrNilIfZeroValue(true), QueryStringCacheKeys: &svcsdk.QueryStringCacheKeys{ - Items: []*string{pointer.String("search")}, + Items: []*string{pointer.ToOrNilIfZeroValue("search")}, }, }, LambdaFunctionAssociations: &svcsdk.LambdaFunctionAssociations{ Items: []*svcsdk.LambdaFunctionAssociation{{ - EventType: pointer.String("good"), - IncludeBody: pointer.Bool(true), - LambdaFunctionARN: pointer.String("arn"), + EventType: pointer.ToOrNilIfZeroValue("good"), + IncludeBody: pointer.ToOrNilIfZeroValue(true), + LambdaFunctionARN: pointer.ToOrNilIfZeroValue("arn"), }}, }, - MaxTTL: pointer.Int64(42), - MinTTL: pointer.Int64(42), - OriginRequestPolicyId: pointer.String("example"), - RealtimeLogConfigArn: pointer.String("example"), - SmoothStreaming: pointer.Bool(true), - TargetOriginId: pointer.String("example"), + MaxTTL: ptr.To[int64](42), + MinTTL: ptr.To[int64](42), + OriginRequestPolicyId: pointer.ToOrNilIfZeroValue("example"), + RealtimeLogConfigArn: pointer.ToOrNilIfZeroValue("example"), + SmoothStreaming: pointer.ToOrNilIfZeroValue(true), + TargetOriginId: pointer.ToOrNilIfZeroValue("example"), TrustedKeyGroups: &svcsdk.TrustedKeyGroups{ - Enabled: pointer.Bool(true), - Items: []*string{pointer.String("the-good-key")}, + Enabled: pointer.ToOrNilIfZeroValue(true), + Items: []*string{pointer.ToOrNilIfZeroValue("the-good-key")}, }, TrustedSigners: &svcsdk.TrustedSigners{ - Enabled: pointer.Bool(true), - Items: []*string{pointer.String("the-good-signer")}, + Enabled: pointer.ToOrNilIfZeroValue(true), + Items: []*string{pointer.ToOrNilIfZeroValue("the-good-signer")}, }, }, - DefaultRootObject: pointer.String("the-good-one"), - Enabled: pointer.Bool(true), - HttpVersion: pointer.String("1.1"), - IsIPV6Enabled: pointer.Bool(true), + DefaultRootObject: pointer.ToOrNilIfZeroValue("the-good-one"), + Enabled: pointer.ToOrNilIfZeroValue(true), + HttpVersion: pointer.ToOrNilIfZeroValue("1.1"), + IsIPV6Enabled: pointer.ToOrNilIfZeroValue(true), Logging: &svcsdk.LoggingConfig{ - Bucket: pointer.String("big-logs"), - Enabled: pointer.Bool(true), - IncludeCookies: pointer.Bool(true), - Prefix: pointer.String("one-large-log-"), + Bucket: pointer.ToOrNilIfZeroValue("big-logs"), + Enabled: pointer.ToOrNilIfZeroValue(true), + IncludeCookies: pointer.ToOrNilIfZeroValue(true), + Prefix: pointer.ToOrNilIfZeroValue("one-large-log-"), }, OriginGroups: &svcsdk.OriginGroups{ Items: []*svcsdk.OriginGroup{{ FailoverCriteria: &svcsdk.OriginGroupFailoverCriteria{ StatusCodes: &svcsdk.StatusCodes{ - Items: []*int64{pointer.Int64(418)}, + Items: []*int64{ptr.To[int64](418)}, }, }, Members: &svcsdk.OriginGroupMembers{ Items: []*svcsdk.OriginGroupMember{{ - OriginId: pointer.String("example"), + OriginId: pointer.ToOrNilIfZeroValue("example"), }}, }, }}, }, Origins: &svcsdk.Origins{ Items: []*svcsdk.Origin{{ - ConnectionAttempts: pointer.Int64(42), - ConnectionTimeout: pointer.Int64(42), + ConnectionAttempts: ptr.To[int64](42), + ConnectionTimeout: ptr.To[int64](42), CustomHeaders: &svcsdk.CustomHeaders{ Items: []*svcsdk.OriginCustomHeader{{ - HeaderName: pointer.String("X-Cool"), - HeaderValue: pointer.String("very"), + HeaderName: pointer.ToOrNilIfZeroValue("X-Cool"), + HeaderValue: pointer.ToOrNilIfZeroValue("very"), }}, }, CustomOriginConfig: &svcsdk.CustomOriginConfig{ - HTTPPort: pointer.Int64(8080), - HTTPSPort: pointer.Int64(443), - OriginKeepaliveTimeout: pointer.Int64(42), - OriginProtocolPolicy: pointer.String("all-of-them"), - OriginReadTimeout: pointer.Int64(42), + HTTPPort: ptr.To[int64](8080), + HTTPSPort: ptr.To[int64](443), + OriginKeepaliveTimeout: ptr.To[int64](42), + OriginProtocolPolicy: pointer.ToOrNilIfZeroValue("all-of-them"), + OriginReadTimeout: ptr.To[int64](42), OriginSslProtocols: &svcsdk.OriginSslProtocols{ - Items: []*string{pointer.String("TLS_1.2")}, + Items: []*string{pointer.ToOrNilIfZeroValue("TLS_1.2")}, }, }, - DomainName: pointer.String("example.org"), - Id: pointer.String("custom"), - OriginPath: pointer.String("/"), + DomainName: pointer.ToOrNilIfZeroValue("example.org"), + Id: pointer.ToOrNilIfZeroValue("custom"), + OriginPath: pointer.ToOrNilIfZeroValue("/"), OriginShield: &svcsdk.OriginShield{ - Enabled: pointer.Bool(true), - OriginShieldRegion: pointer.String("us-east-1"), + Enabled: pointer.ToOrNilIfZeroValue(true), + OriginShieldRegion: pointer.ToOrNilIfZeroValue("us-east-1"), }, S3OriginConfig: &svcsdk.S3OriginConfig{ - OriginAccessIdentity: pointer.String("cool-guy"), + OriginAccessIdentity: pointer.ToOrNilIfZeroValue("cool-guy"), }, }}, }, - PriceClass: pointer.String("really-cheap"), + PriceClass: pointer.ToOrNilIfZeroValue("really-cheap"), Restrictions: &svcsdk.Restrictions{ GeoRestriction: &svcsdk.GeoRestriction{ - RestrictionType: pointer.String("no-australians"), - Items: []*string{pointer.String("negz"), pointer.String("kylie")}, + RestrictionType: pointer.ToOrNilIfZeroValue("no-australians"), + Items: []*string{pointer.ToOrNilIfZeroValue("negz"), pointer.ToOrNilIfZeroValue("kylie")}, }, }, ViewerCertificate: &svcsdk.ViewerCertificate{ - ACMCertificateArn: pointer.String("example"), - Certificate: pointer.String("example"), - CertificateSource: pointer.String("trusty-source"), - CloudFrontDefaultCertificate: pointer.Bool(false), - IAMCertificateId: pointer.String("example"), - MinimumProtocolVersion: pointer.String("TLS_1.2"), - SSLSupportMethod: pointer.String("fax"), + ACMCertificateArn: pointer.ToOrNilIfZeroValue("example"), + Certificate: pointer.ToOrNilIfZeroValue("example"), + CertificateSource: pointer.ToOrNilIfZeroValue("trusty-source"), + CloudFrontDefaultCertificate: pointer.ToOrNilIfZeroValue(false), + IAMCertificateId: pointer.ToOrNilIfZeroValue("example"), + MinimumProtocolVersion: pointer.ToOrNilIfZeroValue("TLS_1.2"), + SSLSupportMethod: pointer.ToOrNilIfZeroValue("fax"), }, - WebACLId: pointer.String("example"), + WebACLId: pointer.ToOrNilIfZeroValue("example"), }, }, }, @@ -331,188 +332,188 @@ func TestLateInitialize(t *testing.T) { want: &svcapitypes.DistributionParameters{ DistributionConfig: &svcapitypes.DistributionConfig{ Aliases: &svcapitypes.Aliases{ - Items: []*string{pointer.String("example.org")}, + Items: []*string{pointer.ToOrNilIfZeroValue("example.org")}, }, CacheBehaviors: &svcapitypes.CacheBehaviors{ Items: []*svcapitypes.CacheBehavior{{ AllowedMethods: &svcapitypes.AllowedMethods{ - Items: []*string{pointer.String("GET")}, + Items: []*string{pointer.ToOrNilIfZeroValue("GET")}, CachedMethods: &svcapitypes.CachedMethods{ - Items: []*string{pointer.String("GET")}, + Items: []*string{pointer.ToOrNilIfZeroValue("GET")}, }, }, - CachePolicyID: pointer.String("example"), - Compress: pointer.Bool(true), - DefaultTTL: pointer.Int64(42), - FieldLevelEncryptionID: pointer.String("example"), + CachePolicyID: pointer.ToOrNilIfZeroValue("example"), + Compress: pointer.ToOrNilIfZeroValue(true), + DefaultTTL: ptr.To[int64](42), + FieldLevelEncryptionID: pointer.ToOrNilIfZeroValue("example"), ForwardedValues: &svcapitypes.ForwardedValues{ Cookies: &svcapitypes.CookiePreference{ - Forward: pointer.String("example"), + Forward: pointer.ToOrNilIfZeroValue("example"), WhitelistedNames: &svcapitypes.CookieNames{ - Items: []*string{pointer.String("example")}, + Items: []*string{pointer.ToOrNilIfZeroValue("example")}, }, }, Headers: &svcapitypes.Headers{ - Items: []*string{pointer.String("X-Hello")}, + Items: []*string{pointer.ToOrNilIfZeroValue("X-Hello")}, }, - QueryString: pointer.Bool(true), + QueryString: pointer.ToOrNilIfZeroValue(true), QueryStringCacheKeys: &svcapitypes.QueryStringCacheKeys{ - Items: []*string{pointer.String("search")}, + Items: []*string{pointer.ToOrNilIfZeroValue("search")}, }, }, LambdaFunctionAssociations: &svcapitypes.LambdaFunctionAssociations{ Items: []*svcapitypes.LambdaFunctionAssociation{{ - EventType: pointer.String("good"), - IncludeBody: pointer.Bool(true), - LambdaFunctionARN: pointer.String("arn"), + EventType: pointer.ToOrNilIfZeroValue("good"), + IncludeBody: pointer.ToOrNilIfZeroValue(true), + LambdaFunctionARN: pointer.ToOrNilIfZeroValue("arn"), }}, }, - MaxTTL: pointer.Int64(42), - MinTTL: pointer.Int64(42), - OriginRequestPolicyID: pointer.String("example"), - PathPattern: pointer.String("example"), - RealtimeLogConfigARN: pointer.String("example"), - SmoothStreaming: pointer.Bool(true), - TargetOriginID: pointer.String("example"), + MaxTTL: ptr.To[int64](42), + MinTTL: ptr.To[int64](42), + OriginRequestPolicyID: pointer.ToOrNilIfZeroValue("example"), + PathPattern: pointer.ToOrNilIfZeroValue("example"), + RealtimeLogConfigARN: pointer.ToOrNilIfZeroValue("example"), + SmoothStreaming: pointer.ToOrNilIfZeroValue(true), + TargetOriginID: pointer.ToOrNilIfZeroValue("example"), TrustedKeyGroups: &svcapitypes.TrustedKeyGroups{ - Enabled: pointer.Bool(true), - Items: []*string{pointer.String("the-good-key")}, + Enabled: pointer.ToOrNilIfZeroValue(true), + Items: []*string{pointer.ToOrNilIfZeroValue("the-good-key")}, }, TrustedSigners: &svcapitypes.TrustedSigners{ - Enabled: pointer.Bool(true), - Items: []*string{pointer.String("the-good-signer")}, + Enabled: pointer.ToOrNilIfZeroValue(true), + Items: []*string{pointer.ToOrNilIfZeroValue("the-good-signer")}, }, }}, }, CustomErrorResponses: &svcapitypes.CustomErrorResponses{ Items: []*svcapitypes.CustomErrorResponse{{ - ErrorCachingMinTTL: pointer.Int64(42), - ErrorCode: pointer.Int64(418), - ResponseCode: pointer.String("I'm a teapot"), - ResponsePagePath: pointer.String("/teapot"), + ErrorCachingMinTTL: ptr.To[int64](42), + ErrorCode: ptr.To[int64](418), + ResponseCode: pointer.ToOrNilIfZeroValue("I'm a teapot"), + ResponsePagePath: pointer.ToOrNilIfZeroValue("/teapot"), }}, }, DefaultCacheBehavior: &svcapitypes.DefaultCacheBehavior{ AllowedMethods: &svcapitypes.AllowedMethods{ - Items: []*string{pointer.String("GET")}, + Items: []*string{pointer.ToOrNilIfZeroValue("GET")}, CachedMethods: &svcapitypes.CachedMethods{ - Items: []*string{pointer.String("GET")}, + Items: []*string{pointer.ToOrNilIfZeroValue("GET")}, }, }, - CachePolicyID: pointer.String("example"), - Compress: pointer.Bool(true), - DefaultTTL: pointer.Int64(42), - FieldLevelEncryptionID: pointer.String("example"), + CachePolicyID: pointer.ToOrNilIfZeroValue("example"), + Compress: pointer.ToOrNilIfZeroValue(true), + DefaultTTL: ptr.To[int64](42), + FieldLevelEncryptionID: pointer.ToOrNilIfZeroValue("example"), ForwardedValues: &svcapitypes.ForwardedValues{ Cookies: &svcapitypes.CookiePreference{ - Forward: pointer.String("example"), + Forward: pointer.ToOrNilIfZeroValue("example"), WhitelistedNames: &svcapitypes.CookieNames{ - Items: []*string{pointer.String("example")}, + Items: []*string{pointer.ToOrNilIfZeroValue("example")}, }, }, Headers: &svcapitypes.Headers{ - Items: []*string{pointer.String("X-Hello")}, + Items: []*string{pointer.ToOrNilIfZeroValue("X-Hello")}, }, - QueryString: pointer.Bool(true), + QueryString: pointer.ToOrNilIfZeroValue(true), QueryStringCacheKeys: &svcapitypes.QueryStringCacheKeys{ - Items: []*string{pointer.String("search")}, + Items: []*string{pointer.ToOrNilIfZeroValue("search")}, }, }, LambdaFunctionAssociations: &svcapitypes.LambdaFunctionAssociations{ Items: []*svcapitypes.LambdaFunctionAssociation{{ - EventType: pointer.String("good"), - IncludeBody: pointer.Bool(true), - LambdaFunctionARN: pointer.String("arn"), + EventType: pointer.ToOrNilIfZeroValue("good"), + IncludeBody: pointer.ToOrNilIfZeroValue(true), + LambdaFunctionARN: pointer.ToOrNilIfZeroValue("arn"), }}, }, - MaxTTL: pointer.Int64(42), - MinTTL: pointer.Int64(42), - OriginRequestPolicyID: pointer.String("example"), - RealtimeLogConfigARN: pointer.String("example"), - SmoothStreaming: pointer.Bool(true), - TargetOriginID: pointer.String("example"), + MaxTTL: ptr.To[int64](42), + MinTTL: ptr.To[int64](42), + OriginRequestPolicyID: pointer.ToOrNilIfZeroValue("example"), + RealtimeLogConfigARN: pointer.ToOrNilIfZeroValue("example"), + SmoothStreaming: pointer.ToOrNilIfZeroValue(true), + TargetOriginID: pointer.ToOrNilIfZeroValue("example"), TrustedKeyGroups: &svcapitypes.TrustedKeyGroups{ - Enabled: pointer.Bool(true), - Items: []*string{pointer.String("the-good-key")}, + Enabled: pointer.ToOrNilIfZeroValue(true), + Items: []*string{pointer.ToOrNilIfZeroValue("the-good-key")}, }, TrustedSigners: &svcapitypes.TrustedSigners{ - Enabled: pointer.Bool(true), - Items: []*string{pointer.String("the-good-signer")}, + Enabled: pointer.ToOrNilIfZeroValue(true), + Items: []*string{pointer.ToOrNilIfZeroValue("the-good-signer")}, }, }, - DefaultRootObject: pointer.String("the-good-one"), - Enabled: pointer.Bool(true), - HTTPVersion: pointer.String("1.1"), - IsIPV6Enabled: pointer.Bool(true), + DefaultRootObject: pointer.ToOrNilIfZeroValue("the-good-one"), + Enabled: pointer.ToOrNilIfZeroValue(true), + HTTPVersion: pointer.ToOrNilIfZeroValue("1.1"), + IsIPV6Enabled: pointer.ToOrNilIfZeroValue(true), Logging: &svcapitypes.LoggingConfig{ - Bucket: pointer.String("big-logs"), - Enabled: pointer.Bool(true), - IncludeCookies: pointer.Bool(true), - Prefix: pointer.String("one-large-log-"), + Bucket: pointer.ToOrNilIfZeroValue("big-logs"), + Enabled: pointer.ToOrNilIfZeroValue(true), + IncludeCookies: pointer.ToOrNilIfZeroValue(true), + Prefix: pointer.ToOrNilIfZeroValue("one-large-log-"), }, OriginGroups: &svcapitypes.OriginGroups{ Items: []*svcapitypes.OriginGroup{{ FailoverCriteria: &svcapitypes.OriginGroupFailoverCriteria{ StatusCodes: &svcapitypes.StatusCodes{ - Items: []*int64{pointer.Int64(418)}, + Items: []*int64{ptr.To[int64](418)}, }, }, Members: &svcapitypes.OriginGroupMembers{ Items: []*svcapitypes.OriginGroupMember{{ - OriginID: pointer.String("example"), + OriginID: pointer.ToOrNilIfZeroValue("example"), }}, }, }}, }, Origins: &svcapitypes.Origins{ Items: []*svcapitypes.Origin{{ - ConnectionAttempts: pointer.Int64(42), - ConnectionTimeout: pointer.Int64(42), + ConnectionAttempts: ptr.To[int64](42), + ConnectionTimeout: ptr.To[int64](42), CustomHeaders: &svcapitypes.CustomHeaders{ Items: []*svcapitypes.OriginCustomHeader{{ - HeaderName: pointer.String("X-Cool"), - HeaderValue: pointer.String("very"), + HeaderName: pointer.ToOrNilIfZeroValue("X-Cool"), + HeaderValue: pointer.ToOrNilIfZeroValue("very"), }}, }, CustomOriginConfig: &svcapitypes.CustomOriginConfig{ - HTTPPort: pointer.Int64(8080), - HTTPSPort: pointer.Int64(443), - OriginKeepaliveTimeout: pointer.Int64(42), - OriginProtocolPolicy: pointer.String("all-of-them"), - OriginReadTimeout: pointer.Int64(42), + HTTPPort: ptr.To[int64](8080), + HTTPSPort: ptr.To[int64](443), + OriginKeepaliveTimeout: ptr.To[int64](42), + OriginProtocolPolicy: pointer.ToOrNilIfZeroValue("all-of-them"), + OriginReadTimeout: ptr.To[int64](42), OriginSSLProtocols: &svcapitypes.OriginSSLProtocols{ - Items: []*string{pointer.String("TLS_1.2")}, + Items: []*string{pointer.ToOrNilIfZeroValue("TLS_1.2")}, }, }, - DomainName: pointer.String("example.org"), - ID: pointer.String("custom"), - OriginPath: pointer.String("/"), + DomainName: pointer.ToOrNilIfZeroValue("example.org"), + ID: pointer.ToOrNilIfZeroValue("custom"), + OriginPath: pointer.ToOrNilIfZeroValue("/"), OriginShield: &svcapitypes.OriginShield{ - Enabled: pointer.Bool(true), - OriginShieldRegion: pointer.String("us-east-1"), + Enabled: pointer.ToOrNilIfZeroValue(true), + OriginShieldRegion: pointer.ToOrNilIfZeroValue("us-east-1"), }, S3OriginConfig: &svcapitypes.S3OriginConfig{ - OriginAccessIdentity: pointer.String("cool-guy"), + OriginAccessIdentity: pointer.ToOrNilIfZeroValue("cool-guy"), }, }}, }, - PriceClass: pointer.String("really-cheap"), + PriceClass: pointer.ToOrNilIfZeroValue("really-cheap"), Restrictions: &svcapitypes.Restrictions{ GeoRestriction: &svcapitypes.GeoRestriction{ - RestrictionType: pointer.String("no-australians"), - Items: []*string{pointer.String("negz"), pointer.String("kylie")}, + RestrictionType: pointer.ToOrNilIfZeroValue("no-australians"), + Items: []*string{pointer.ToOrNilIfZeroValue("negz"), pointer.ToOrNilIfZeroValue("kylie")}, }, }, ViewerCertificate: &svcapitypes.ViewerCertificate{ - ACMCertificateARN: pointer.String("example"), - Certificate: pointer.String("example"), - CertificateSource: pointer.String("trusty-source"), - CloudFrontDefaultCertificate: pointer.Bool(false), - IAMCertificateID: pointer.String("example"), - MinimumProtocolVersion: pointer.String("TLS_1.2"), - SSLSupportMethod: pointer.String("fax"), + ACMCertificateARN: pointer.ToOrNilIfZeroValue("example"), + Certificate: pointer.ToOrNilIfZeroValue("example"), + CertificateSource: pointer.ToOrNilIfZeroValue("trusty-source"), + CloudFrontDefaultCertificate: pointer.ToOrNilIfZeroValue(false), + IAMCertificateID: pointer.ToOrNilIfZeroValue("example"), + MinimumProtocolVersion: pointer.ToOrNilIfZeroValue("TLS_1.2"), + SSLSupportMethod: pointer.ToOrNilIfZeroValue("fax"), }, - WebACLID: pointer.String("example"), + WebACLID: pointer.ToOrNilIfZeroValue("example"), }, }, }, @@ -525,11 +526,11 @@ func TestLateInitialize(t *testing.T) { {}, // This one has a nil ID. { // This one only exists in desired state. - ID: pointer.String("desired-only"), + ID: pointer.ToOrNilIfZeroValue("desired-only"), }, { // We want to late-init domain-name here. - ID: pointer.String("custom"), + ID: pointer.ToOrNilIfZeroValue("custom"), }, }, }, @@ -543,11 +544,11 @@ func TestLateInitialize(t *testing.T) { {}, // This one has a nil Id. { // This one only exists in actual state. - Id: pointer.String("actual-only"), + Id: pointer.ToOrNilIfZeroValue("actual-only"), }, { - DomainName: pointer.String("example.org"), - Id: pointer.String("custom"), + DomainName: pointer.ToOrNilIfZeroValue("example.org"), + Id: pointer.ToOrNilIfZeroValue("custom"), }, }, }, @@ -562,11 +563,11 @@ func TestLateInitialize(t *testing.T) { {}, // This one has a nil ID. { // This one only exists in desired state. - ID: pointer.String("desired-only"), + ID: pointer.ToOrNilIfZeroValue("desired-only"), }, { - DomainName: pointer.String("example.org"), - ID: pointer.String("custom"), + DomainName: pointer.ToOrNilIfZeroValue("example.org"), + ID: pointer.ToOrNilIfZeroValue("custom"), }, }, }, diff --git a/pkg/controller/cloudfront/distribution/setup.go b/pkg/controller/cloudfront/distribution/setup.go index 2fa3f11dbb..b68ee43783 100644 --- a/pkg/controller/cloudfront/distribution/setup.go +++ b/pkg/controller/cloudfront/distribution/setup.go @@ -99,163 +99,163 @@ func preCreate(_ context.Context, cr *svcapitypes.Distribution, cdi *svcsdk.Crea if pointer.StringValue(cr.Spec.ForProvider.DistributionConfig.CallerReference) != "" { cdi.DistributionConfig.CallerReference = cr.Spec.ForProvider.DistributionConfig.CallerReference } else { - cdi.DistributionConfig.CallerReference = pointer.String(string(cr.UID)) + cdi.DistributionConfig.CallerReference = pointer.ToOrNilIfZeroValue(string(cr.UID)) } // if cr.Spec.ForProvider.DistributionConfig.Origins is not nil then cdi.DistributionConfig.Origins is not nil if cr.Spec.ForProvider.DistributionConfig.Origins != nil { cdi.DistributionConfig.Origins.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.DistributionConfig.Origins.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.DistributionConfig.Origins.Items)) } if cr.Spec.ForProvider.DistributionConfig.Aliases != nil { cdi.DistributionConfig.Aliases.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.DistributionConfig.Aliases.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.DistributionConfig.Aliases.Items)) } if cr.Spec.ForProvider.DistributionConfig.CustomErrorResponses != nil { cdi.DistributionConfig.CustomErrorResponses.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.DistributionConfig.CustomErrorResponses.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.DistributionConfig.CustomErrorResponses.Items)) } if cr.Spec.ForProvider.DistributionConfig.Restrictions != nil && cr.Spec.ForProvider.DistributionConfig.Restrictions.GeoRestriction != nil { cdi.DistributionConfig.Restrictions.GeoRestriction.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.DistributionConfig.Restrictions.GeoRestriction.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.DistributionConfig.Restrictions.GeoRestriction.Items)) } dcb := cr.Spec.ForProvider.DistributionConfig.DefaultCacheBehavior if dcb != nil { if dcb.AllowedMethods != nil { cdi.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Quantity = - pointer.Int64(len(dcb.AllowedMethods.Items), 0) + pointer.ToIntAsInt64(len(dcb.AllowedMethods.Items)) if dcb.AllowedMethods != nil && dcb.AllowedMethods.CachedMethods != nil { cdi.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Quantity = - pointer.Int64(len(dcb.AllowedMethods.CachedMethods.Items), 0) + pointer.ToIntAsInt64(len(dcb.AllowedMethods.CachedMethods.Items)) } } if dcb.ForwardedValues != nil { if dcb.ForwardedValues.Cookies != nil && dcb.ForwardedValues.Cookies.WhitelistedNames != nil { cdi.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Cookies.WhitelistedNames.Quantity = - pointer.Int64(len(dcb.ForwardedValues.Cookies.WhitelistedNames.Items), 0) + pointer.ToIntAsInt64(len(dcb.ForwardedValues.Cookies.WhitelistedNames.Items)) } if dcb.ForwardedValues.Headers != nil { cdi.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Headers.Quantity = - pointer.Int64(len(dcb.ForwardedValues.Headers.Items), 0) + pointer.ToIntAsInt64(len(dcb.ForwardedValues.Headers.Items)) } if dcb.ForwardedValues.QueryStringCacheKeys != nil { cdi.DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryStringCacheKeys.Quantity = - pointer.Int64(len(dcb.ForwardedValues.QueryStringCacheKeys.Items), 0) + pointer.ToIntAsInt64(len(dcb.ForwardedValues.QueryStringCacheKeys.Items)) } } if dcb.FunctionAssociations != nil { cdi.DistributionConfig.DefaultCacheBehavior.FunctionAssociations.Quantity = - pointer.Int64(len(dcb.FunctionAssociations.Items), 0) + pointer.ToIntAsInt64(len(dcb.FunctionAssociations.Items)) } if dcb.LambdaFunctionAssociations != nil { cdi.DistributionConfig.DefaultCacheBehavior.LambdaFunctionAssociations.Quantity = - pointer.Int64(len(dcb.LambdaFunctionAssociations.Items), 0) + pointer.ToIntAsInt64(len(dcb.LambdaFunctionAssociations.Items)) } if dcb.TrustedKeyGroups != nil { cdi.DistributionConfig.DefaultCacheBehavior.TrustedKeyGroups.Quantity = - pointer.Int64(len(dcb.TrustedKeyGroups.Items), 0) + pointer.ToIntAsInt64(len(dcb.TrustedKeyGroups.Items)) } if dcb.TrustedSigners != nil { cdi.DistributionConfig.DefaultCacheBehavior.TrustedSigners.Quantity = - pointer.Int64(len(dcb.TrustedSigners.Items), 0) + pointer.ToIntAsInt64(len(dcb.TrustedSigners.Items)) } } if cr.Spec.ForProvider.DistributionConfig.CacheBehaviors != nil { cdi.DistributionConfig.CacheBehaviors.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.DistributionConfig.CacheBehaviors.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.DistributionConfig.CacheBehaviors.Items)) for i, cbi := range cr.Spec.ForProvider.DistributionConfig.CacheBehaviors.Items { if cbi.AllowedMethods != nil { cdi.DistributionConfig.CacheBehaviors.Items[i].AllowedMethods.Quantity = - pointer.Int64(len(cbi.AllowedMethods.Items), 0) + pointer.ToIntAsInt64(len(cbi.AllowedMethods.Items)) } if cbi.AllowedMethods != nil && cbi.AllowedMethods.CachedMethods != nil { cdi.DistributionConfig.CacheBehaviors.Items[i].AllowedMethods.CachedMethods.Quantity = - pointer.Int64(len(cbi.AllowedMethods.CachedMethods.Items), 0) + pointer.ToIntAsInt64(len(cbi.AllowedMethods.CachedMethods.Items)) } if cbi.ForwardedValues != nil { if cbi.ForwardedValues.Cookies != nil && cbi.ForwardedValues.Cookies.WhitelistedNames != nil { cdi.DistributionConfig.CacheBehaviors.Items[i].ForwardedValues.Cookies.WhitelistedNames.Quantity = - pointer.Int64(len(cbi.ForwardedValues.Cookies.WhitelistedNames.Items), 0) + pointer.ToIntAsInt64(len(cbi.ForwardedValues.Cookies.WhitelistedNames.Items)) } if cbi.ForwardedValues.Headers != nil { cdi.DistributionConfig.CacheBehaviors.Items[i].ForwardedValues.Headers.Quantity = - pointer.Int64(len(cbi.ForwardedValues.Headers.Items), 0) + pointer.ToIntAsInt64(len(cbi.ForwardedValues.Headers.Items)) } if cbi.ForwardedValues.QueryStringCacheKeys != nil { cdi.DistributionConfig.CacheBehaviors.Items[i].ForwardedValues.QueryStringCacheKeys.Quantity = - pointer.Int64(len(cbi.ForwardedValues.QueryStringCacheKeys.Items), 0) + pointer.ToIntAsInt64(len(cbi.ForwardedValues.QueryStringCacheKeys.Items)) } } if cbi.FunctionAssociations != nil { cdi.DistributionConfig.CacheBehaviors.Items[i].FunctionAssociations.Quantity = - pointer.Int64(len(cbi.FunctionAssociations.Items), 0) + pointer.ToIntAsInt64(len(cbi.FunctionAssociations.Items)) } if cbi.LambdaFunctionAssociations != nil { cdi.DistributionConfig.CacheBehaviors.Items[i].LambdaFunctionAssociations.Quantity = - pointer.Int64(len(cbi.LambdaFunctionAssociations.Items), 0) + pointer.ToIntAsInt64(len(cbi.LambdaFunctionAssociations.Items)) } if cbi.TrustedKeyGroups != nil { cdi.DistributionConfig.CacheBehaviors.Items[i].TrustedKeyGroups.Quantity = - pointer.Int64(len(cbi.TrustedKeyGroups.Items), 0) + pointer.ToIntAsInt64(len(cbi.TrustedKeyGroups.Items)) } if cbi.TrustedSigners != nil { cdi.DistributionConfig.CacheBehaviors.Items[i].TrustedSigners.Quantity = - pointer.Int64(len(cbi.TrustedSigners.Items), 0) + pointer.ToIntAsInt64(len(cbi.TrustedSigners.Items)) } } } if cr.Spec.ForProvider.DistributionConfig.OriginGroups != nil { cdi.DistributionConfig.OriginGroups.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.DistributionConfig.OriginGroups.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.DistributionConfig.OriginGroups.Items)) for i, ogi := range cr.Spec.ForProvider.DistributionConfig.OriginGroups.Items { if ogi.FailoverCriteria != nil && ogi.FailoverCriteria.StatusCodes != nil { cdi.DistributionConfig.OriginGroups.Items[i].FailoverCriteria.StatusCodes.Quantity = - pointer.Int64(len(ogi.FailoverCriteria.StatusCodes.Items), 0) + pointer.ToIntAsInt64(len(ogi.FailoverCriteria.StatusCodes.Items)) } if ogi.Members != nil { - cdi.DistributionConfig.OriginGroups.Items[i].Members.Quantity = pointer.Int64(len(ogi.Members.Items), 0) + cdi.DistributionConfig.OriginGroups.Items[i].Members.Quantity = pointer.ToIntAsInt64(len(ogi.Members.Items)) } } } if cr.Spec.ForProvider.DistributionConfig.Origins != nil { cdi.DistributionConfig.Origins.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.DistributionConfig.Origins.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.DistributionConfig.Origins.Items)) for i, io := range cr.Spec.ForProvider.DistributionConfig.Origins.Items { if io.CustomHeaders != nil { cdi.DistributionConfig.Origins.Items[i].CustomHeaders.Quantity = - pointer.Int64(len(io.CustomHeaders.Items), 0) + pointer.ToIntAsInt64(len(io.CustomHeaders.Items)) } if io.CustomOriginConfig != nil && io.CustomOriginConfig.OriginSSLProtocols != nil { cdi.DistributionConfig.Origins.Items[i].CustomOriginConfig.OriginSslProtocols.Quantity = - pointer.Int64(len(io.CustomOriginConfig.OriginSSLProtocols.Items), 0) + pointer.ToIntAsInt64(len(io.CustomOriginConfig.OriginSSLProtocols.Items)) } } } @@ -274,7 +274,7 @@ func postCreate(_ context.Context, cr *svcapitypes.Distribution, cdo *svcsdk.Cre } func preObserve(_ context.Context, cr *svcapitypes.Distribution, gdi *svcsdk.GetDistributionInput) error { - gdi.Id = pointer.String(meta.GetExternalName(cr)) + gdi.Id = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -348,157 +348,157 @@ func postUpdate(_ context.Context, cr *svcapitypes.Distribution, resp *svcsdk.Up } func preUpdate(_ context.Context, cr *svcapitypes.Distribution, udi *svcsdk.UpdateDistributionInput) error { - udi.Id = pointer.String(meta.GetExternalName(cr)) + udi.Id = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) udi.SetIfMatch(pointer.StringValue(cr.Status.AtProvider.ETag)) udi.DistributionConfig.Origins.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.DistributionConfig.Origins.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.DistributionConfig.Origins.Items)) if cr.Spec.ForProvider.DistributionConfig.Aliases != nil { udi.DistributionConfig.Aliases.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.DistributionConfig.Aliases.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.DistributionConfig.Aliases.Items)) } if cr.Spec.ForProvider.DistributionConfig.CustomErrorResponses != nil { udi.DistributionConfig.CustomErrorResponses.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.DistributionConfig.CustomErrorResponses.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.DistributionConfig.CustomErrorResponses.Items)) } if cr.Spec.ForProvider.DistributionConfig.Restrictions != nil && cr.Spec.ForProvider.DistributionConfig.Restrictions.GeoRestriction != nil { udi.DistributionConfig.Restrictions.GeoRestriction.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.DistributionConfig.Restrictions.GeoRestriction.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.DistributionConfig.Restrictions.GeoRestriction.Items)) } dcb := cr.Spec.ForProvider.DistributionConfig.DefaultCacheBehavior if dcb != nil { if dcb.AllowedMethods != nil { udi.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Quantity = - pointer.Int64(len(dcb.AllowedMethods.Items), 0) + pointer.ToIntAsInt64(len(dcb.AllowedMethods.Items)) if dcb.AllowedMethods != nil && dcb.AllowedMethods.CachedMethods != nil { udi.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Quantity = - pointer.Int64(len(dcb.AllowedMethods.CachedMethods.Items), 0) + pointer.ToIntAsInt64(len(dcb.AllowedMethods.CachedMethods.Items)) } } if dcb.ForwardedValues != nil { if dcb.ForwardedValues.Cookies != nil && dcb.ForwardedValues.Cookies.WhitelistedNames != nil { udi.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Cookies.WhitelistedNames.Quantity = - pointer.Int64(len(dcb.ForwardedValues.Cookies.WhitelistedNames.Items), 0) + pointer.ToIntAsInt64(len(dcb.ForwardedValues.Cookies.WhitelistedNames.Items)) } if dcb.ForwardedValues.Headers != nil { udi.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Headers.Quantity = - pointer.Int64(len(dcb.ForwardedValues.Headers.Items), 0) + pointer.ToIntAsInt64(len(dcb.ForwardedValues.Headers.Items)) } if dcb.ForwardedValues.QueryStringCacheKeys != nil { udi.DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryStringCacheKeys.Quantity = - pointer.Int64(len(dcb.ForwardedValues.QueryStringCacheKeys.Items), 0) + pointer.ToIntAsInt64(len(dcb.ForwardedValues.QueryStringCacheKeys.Items)) } } if dcb.FunctionAssociations != nil { udi.DistributionConfig.DefaultCacheBehavior.FunctionAssociations.Quantity = - pointer.Int64(len(dcb.FunctionAssociations.Items), 0) + pointer.ToIntAsInt64(len(dcb.FunctionAssociations.Items)) } if dcb.LambdaFunctionAssociations != nil { udi.DistributionConfig.DefaultCacheBehavior.LambdaFunctionAssociations.Quantity = - pointer.Int64(len(dcb.LambdaFunctionAssociations.Items), 0) + pointer.ToIntAsInt64(len(dcb.LambdaFunctionAssociations.Items)) } if dcb.TrustedKeyGroups != nil { udi.DistributionConfig.DefaultCacheBehavior.TrustedKeyGroups.Quantity = - pointer.Int64(len(dcb.TrustedKeyGroups.Items), 0) + pointer.ToIntAsInt64(len(dcb.TrustedKeyGroups.Items)) } if dcb.TrustedSigners != nil { udi.DistributionConfig.DefaultCacheBehavior.TrustedSigners.Quantity = - pointer.Int64(len(dcb.TrustedSigners.Items), 0) + pointer.ToIntAsInt64(len(dcb.TrustedSigners.Items)) } } if cr.Spec.ForProvider.DistributionConfig.CacheBehaviors != nil { udi.DistributionConfig.CacheBehaviors.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.DistributionConfig.CacheBehaviors.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.DistributionConfig.CacheBehaviors.Items)) for i, cbi := range cr.Spec.ForProvider.DistributionConfig.CacheBehaviors.Items { if cbi.AllowedMethods != nil { udi.DistributionConfig.CacheBehaviors.Items[i].AllowedMethods.Quantity = - pointer.Int64(len(cbi.AllowedMethods.Items), 0) + pointer.ToIntAsInt64(len(cbi.AllowedMethods.Items)) } if cbi.AllowedMethods != nil && cbi.AllowedMethods.CachedMethods != nil { udi.DistributionConfig.CacheBehaviors.Items[i].AllowedMethods.CachedMethods.Quantity = - pointer.Int64(len(cbi.AllowedMethods.CachedMethods.Items), 0) + pointer.ToIntAsInt64(len(cbi.AllowedMethods.CachedMethods.Items)) } if cbi.ForwardedValues != nil { if cbi.ForwardedValues.Cookies != nil && cbi.ForwardedValues.Cookies.WhitelistedNames != nil { udi.DistributionConfig.CacheBehaviors.Items[i].ForwardedValues.Cookies.WhitelistedNames.Quantity = - pointer.Int64(len(cbi.ForwardedValues.Cookies.WhitelistedNames.Items), 0) + pointer.ToIntAsInt64(len(cbi.ForwardedValues.Cookies.WhitelistedNames.Items)) } if cbi.ForwardedValues.Headers != nil { udi.DistributionConfig.CacheBehaviors.Items[i].ForwardedValues.Headers.Quantity = - pointer.Int64(len(cbi.ForwardedValues.Headers.Items), 0) + pointer.ToIntAsInt64(len(cbi.ForwardedValues.Headers.Items)) } if cbi.ForwardedValues.QueryStringCacheKeys != nil { udi.DistributionConfig.CacheBehaviors.Items[i].ForwardedValues.QueryStringCacheKeys.Quantity = - pointer.Int64(len(cbi.ForwardedValues.QueryStringCacheKeys.Items), 0) + pointer.ToIntAsInt64(len(cbi.ForwardedValues.QueryStringCacheKeys.Items)) } } if cbi.FunctionAssociations != nil { udi.DistributionConfig.CacheBehaviors.Items[i].FunctionAssociations.Quantity = - pointer.Int64(len(cbi.FunctionAssociations.Items), 0) + pointer.ToIntAsInt64(len(cbi.FunctionAssociations.Items)) } if cbi.LambdaFunctionAssociations != nil { udi.DistributionConfig.CacheBehaviors.Items[i].LambdaFunctionAssociations.Quantity = - pointer.Int64(len(cbi.LambdaFunctionAssociations.Items), 0) + pointer.ToIntAsInt64(len(cbi.LambdaFunctionAssociations.Items)) } if cbi.TrustedKeyGroups != nil { udi.DistributionConfig.CacheBehaviors.Items[i].TrustedKeyGroups.Quantity = - pointer.Int64(len(cbi.TrustedKeyGroups.Items), 0) + pointer.ToIntAsInt64(len(cbi.TrustedKeyGroups.Items)) } if cbi.TrustedSigners != nil { udi.DistributionConfig.CacheBehaviors.Items[i].TrustedSigners.Quantity = - pointer.Int64(len(cbi.TrustedSigners.Items), 0) + pointer.ToIntAsInt64(len(cbi.TrustedSigners.Items)) } } } if cr.Spec.ForProvider.DistributionConfig.OriginGroups != nil { udi.DistributionConfig.OriginGroups.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.DistributionConfig.OriginGroups.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.DistributionConfig.OriginGroups.Items)) for i, ogi := range cr.Spec.ForProvider.DistributionConfig.OriginGroups.Items { if ogi.FailoverCriteria != nil && ogi.FailoverCriteria.StatusCodes != nil { udi.DistributionConfig.OriginGroups.Items[i].FailoverCriteria.StatusCodes.Quantity = - pointer.Int64(len(ogi.FailoverCriteria.StatusCodes.Items), 0) + pointer.ToIntAsInt64(len(ogi.FailoverCriteria.StatusCodes.Items)) } if ogi.Members != nil { - udi.DistributionConfig.OriginGroups.Items[i].Members.Quantity = pointer.Int64(len(ogi.Members.Items), 0) + udi.DistributionConfig.OriginGroups.Items[i].Members.Quantity = pointer.ToIntAsInt64(len(ogi.Members.Items)) } } } if cr.Spec.ForProvider.DistributionConfig.Origins != nil { udi.DistributionConfig.Origins.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.DistributionConfig.Origins.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.DistributionConfig.Origins.Items)) for i, io := range cr.Spec.ForProvider.DistributionConfig.Origins.Items { if io.CustomHeaders != nil { udi.DistributionConfig.Origins.Items[i].CustomHeaders.Quantity = - pointer.Int64(len(io.CustomHeaders.Items), 0) + pointer.ToIntAsInt64(len(io.CustomHeaders.Items)) } if io.CustomOriginConfig != nil && io.CustomOriginConfig.OriginSSLProtocols != nil { udi.DistributionConfig.Origins.Items[i].CustomOriginConfig.OriginSslProtocols.Quantity = - pointer.Int64(len(io.CustomOriginConfig.OriginSSLProtocols.Items), 0) + pointer.ToIntAsInt64(len(io.CustomOriginConfig.OriginSSLProtocols.Items)) } } } @@ -526,7 +526,7 @@ func (d *deleter) preDelete(ctx context.Context, cr *svcapitypes.Distribution, d return false, errorutils.Wrap(err, errUpdate) } } - ddi.Id = pointer.String(meta.GetExternalName(cr)) + ddi.Id = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) ddi.SetIfMatch(pointer.StringValue(cr.Status.AtProvider.ETag)) return false, nil } diff --git a/pkg/controller/cloudfront/responseheaderspolicy/setup.go b/pkg/controller/cloudfront/responseheaderspolicy/setup.go index bc1418f694..dc6144fa6e 100644 --- a/pkg/controller/cloudfront/responseheaderspolicy/setup.go +++ b/pkg/controller/cloudfront/responseheaderspolicy/setup.go @@ -86,30 +86,30 @@ func SetupResponseHeadersPolicy(mgr ctrl.Manager, o controller.Options) error { } func preCreate(_ context.Context, cr *svcapitypes.ResponseHeadersPolicy, crhpi *svcsdk.CreateResponseHeadersPolicyInput) error { - crhpi.ResponseHeadersPolicyConfig.Name = pointer.String(cr.Name) + crhpi.ResponseHeadersPolicyConfig.Name = pointer.ToOrNilIfZeroValue(cr.Name) if cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CustomHeadersConfig != nil { crhpi.ResponseHeadersPolicyConfig.CustomHeadersConfig.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CustomHeadersConfig.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CustomHeadersConfig.Items)) } if cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig != nil && cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlAllowHeaders != nil { crhpi.ResponseHeadersPolicyConfig.CorsConfig.AccessControlAllowHeaders.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlAllowHeaders.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlAllowHeaders.Items)) } if cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig != nil && cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlAllowMethods != nil { crhpi.ResponseHeadersPolicyConfig.CorsConfig.AccessControlAllowMethods.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlAllowMethods.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlAllowMethods.Items)) } if cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig != nil && cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlAllowOrigins != nil { crhpi.ResponseHeadersPolicyConfig.CorsConfig.AccessControlAllowOrigins.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlAllowOrigins.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlAllowOrigins.Items)) } if cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig != nil && cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlExposeHeaders != nil { crhpi.ResponseHeadersPolicyConfig.CorsConfig.AccessControlExposeHeaders.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlExposeHeaders.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlExposeHeaders.Items)) } return nil @@ -127,7 +127,7 @@ func postCreate(_ context.Context, cr *svcapitypes.ResponseHeadersPolicy, crhpo } func preObserve(_ context.Context, cr *svcapitypes.ResponseHeadersPolicy, grhpi *svcsdk.GetResponseHeadersPolicyInput) error { - grhpi.Id = pointer.String(meta.GetExternalName(cr)) + grhpi.Id = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -142,31 +142,31 @@ func postObserve(_ context.Context, cr *svcapitypes.ResponseHeadersPolicy, grhpo } func preUpdate(_ context.Context, cr *svcapitypes.ResponseHeadersPolicy, urhpi *svcsdk.UpdateResponseHeadersPolicyInput) error { - urhpi.Id = pointer.String(meta.GetExternalName(cr)) + urhpi.Id = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) urhpi.SetIfMatch(pointer.StringValue(cr.Status.AtProvider.ETag)) if cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CustomHeadersConfig != nil { urhpi.ResponseHeadersPolicyConfig.CustomHeadersConfig.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CustomHeadersConfig.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CustomHeadersConfig.Items)) } if cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig != nil && cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlAllowHeaders != nil { urhpi.ResponseHeadersPolicyConfig.CorsConfig.AccessControlAllowHeaders.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlAllowHeaders.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlAllowHeaders.Items)) } if cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig != nil && cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlAllowMethods != nil { urhpi.ResponseHeadersPolicyConfig.CorsConfig.AccessControlAllowMethods.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlAllowMethods.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlAllowMethods.Items)) } if cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig != nil && cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlAllowOrigins != nil { urhpi.ResponseHeadersPolicyConfig.CorsConfig.AccessControlAllowOrigins.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlAllowOrigins.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlAllowOrigins.Items)) } if cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig != nil && cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlExposeHeaders != nil { urhpi.ResponseHeadersPolicyConfig.CorsConfig.AccessControlExposeHeaders.Quantity = - pointer.Int64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlExposeHeaders.Items), 0) + pointer.ToIntAsInt64(len(cr.Spec.ForProvider.ResponseHeadersPolicyConfig.CORSConfig.AccessControlExposeHeaders.Items)) } return nil } @@ -186,7 +186,7 @@ type deleter struct { } func (d *deleter) preDelete(_ context.Context, cr *svcapitypes.ResponseHeadersPolicy, drhpi *svcsdk.DeleteResponseHeadersPolicyInput) (bool, error) { - drhpi.Id = pointer.String(meta.GetExternalName(cr)) + drhpi.Id = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) drhpi.SetIfMatch(pointer.StringValue(cr.Status.AtProvider.ETag)) return false, nil } diff --git a/pkg/controller/cloudsearch/domain/setup.go b/pkg/controller/cloudsearch/domain/setup.go index 036e91f7d8..ac8b12760e 100644 --- a/pkg/controller/cloudsearch/domain/setup.go +++ b/pkg/controller/cloudsearch/domain/setup.go @@ -106,19 +106,19 @@ func (h *hooks) lateInitialize(forProvider *svcapitypes.DomainParameters, _ *svc current := resp.ScalingParameters.Options - spec.DesiredReplicationCount = pointer.LateInitializeInt64Ptr(spec.DesiredReplicationCount, current.DesiredReplicationCount) - spec.DesiredInstanceType = pointer.LateInitializeStringPtr(spec.DesiredInstanceType, current.DesiredInstanceType) - spec.DesiredPartitionCount = pointer.LateInitializeInt64Ptr(spec.DesiredPartitionCount, current.DesiredPartitionCount) + spec.DesiredReplicationCount = pointer.LateInitialize(spec.DesiredReplicationCount, current.DesiredReplicationCount) + spec.DesiredInstanceType = pointer.LateInitialize(spec.DesiredInstanceType, current.DesiredInstanceType) + spec.DesiredPartitionCount = pointer.LateInitialize(spec.DesiredPartitionCount, current.DesiredPartitionCount) respAccessPolicies, err := h.client.DescribeServiceAccessPolicies(&svcsdk.DescribeServiceAccessPoliciesInput{ DomainName: forProvider.DomainName, - Deployed: pointer.Bool(false), + Deployed: pointer.ToOrNilIfZeroValue(false), }) if err != nil { return errors.Wrap(err, errDescribeServiceAccessPolicies) } - spec.AccessPolicies = pointer.LateInitializeStringPtr(spec.AccessPolicies, respAccessPolicies.AccessPolicies.Options) + spec.AccessPolicies = pointer.LateInitialize(spec.AccessPolicies, respAccessPolicies.AccessPolicies.Options) return nil } @@ -147,7 +147,7 @@ func (h *hooks) isUpToDateScalingParameters(ctx context.Context, cr *svcapitypes func (h *hooks) isUpToDateAccessPolicies(ctx context.Context, cr *svcapitypes.Domain, domainName *string) (bool, error) { in := svcsdk.DescribeServiceAccessPoliciesInput{ DomainName: domainName, - Deployed: pointer.Bool(false), // include pending policies as well + Deployed: pointer.ToOrNilIfZeroValue(false), // include pending policies as well } resp, err := h.client.DescribeServiceAccessPoliciesWithContext(ctx, &in) diff --git a/pkg/controller/cloudsearch/domain/setup_test.go b/pkg/controller/cloudsearch/domain/setup_test.go index a055e65feb..84f569fbdf 100644 --- a/pkg/controller/cloudsearch/domain/setup_test.go +++ b/pkg/controller/cloudsearch/domain/setup_test.go @@ -59,10 +59,10 @@ func TestLateInitialize(t *testing.T) { "NothingToInitialize": { args: args{ spec: svcapitypes.CustomDomainParameters{ - DesiredReplicationCount: pointer.Int64(4), - DesiredInstanceType: pointer.String("small"), - DesiredPartitionCount: pointer.Int64(0), - AccessPolicies: pointer.String(`{ + DesiredReplicationCount: pointer.ToIntAsInt64(4), + DesiredInstanceType: pointer.ToOrNilIfZeroValue("small"), + DesiredPartitionCount: pointer.ToIntAsInt64(0), + AccessPolicies: pointer.ToOrNilIfZeroValue(`{ "Version": "2012-10-17", "Statement": [ { @@ -74,14 +74,14 @@ func TestLateInitialize(t *testing.T) { }`), }, statusScaling: cloudsearch.ScalingParameters{ - DesiredPartitionCount: pointer.Int64(4), - DesiredInstanceType: pointer.String("small"), - DesiredReplicationCount: pointer.Int64(0), + DesiredPartitionCount: pointer.ToIntAsInt64(4), + DesiredInstanceType: pointer.ToOrNilIfZeroValue("small"), + DesiredReplicationCount: pointer.ToIntAsInt64(0), }, statusPolicies: cloudsearch.AccessPoliciesStatus{ - Options: pointer.String(""), + Options: pointer.ToOrNilIfZeroValue(""), Status: &cloudsearch.OptionStatus{ - PendingDeletion: pointer.Bool(false), + PendingDeletion: pointer.ToOrNilIfZeroValue(false), }, }, statusScalingError: nil, @@ -89,10 +89,10 @@ func TestLateInitialize(t *testing.T) { }, want: want{ result: svcapitypes.CustomDomainParameters{ - DesiredReplicationCount: pointer.Int64(4), - DesiredInstanceType: pointer.String("small"), - DesiredPartitionCount: pointer.Int64(0), - AccessPolicies: pointer.String(`{ + DesiredReplicationCount: pointer.ToIntAsInt64(4), + DesiredInstanceType: pointer.ToOrNilIfZeroValue("small"), + DesiredPartitionCount: pointer.ToIntAsInt64(0), + AccessPolicies: pointer.ToOrNilIfZeroValue(`{ "Version": "2012-10-17", "Statement": [ { @@ -110,14 +110,14 @@ func TestLateInitialize(t *testing.T) { args: args{ spec: svcapitypes.CustomDomainParameters{}, statusScaling: cloudsearch.ScalingParameters{ - DesiredPartitionCount: pointer.Int64(0), - DesiredInstanceType: pointer.String(""), - DesiredReplicationCount: pointer.Int64(0), + DesiredPartitionCount: pointer.ToIntAsInt64(0), + DesiredInstanceType: pointer.ToOrNilIfZeroValue(""), + DesiredReplicationCount: pointer.ToIntAsInt64(0), }, statusPolicies: cloudsearch.AccessPoliciesStatus{ - Options: pointer.String(""), + Options: pointer.ToOrNilIfZeroValue(""), Status: &cloudsearch.OptionStatus{ - PendingDeletion: pointer.Bool(false), + PendingDeletion: pointer.ToOrNilIfZeroValue(false), }, }, statusScalingError: nil, @@ -125,10 +125,10 @@ func TestLateInitialize(t *testing.T) { }, want: want{ result: svcapitypes.CustomDomainParameters{ - DesiredReplicationCount: pointer.Int64(0), - DesiredInstanceType: pointer.String(""), - DesiredPartitionCount: pointer.Int64(0), - AccessPolicies: pointer.String(""), + DesiredReplicationCount: pointer.ToIntAsInt64(0), + DesiredInstanceType: pointer.ToOrNilIfZeroValue(""), + DesiredPartitionCount: pointer.ToIntAsInt64(0), + AccessPolicies: pointer.ToOrNilIfZeroValue(""), }, err: nil, }, @@ -148,7 +148,7 @@ func TestLateInitialize(t *testing.T) { return &cloudsearch.DescribeScalingParametersOutput{ ScalingParameters: &cloudsearch.ScalingParametersStatus{ Options: &tc.statusScaling, - Status: &cloudsearch.OptionStatus{PendingDeletion: pointer.Bool(false)}, + Status: &cloudsearch.OptionStatus{PendingDeletion: pointer.ToOrNilIfZeroValue(false)}, }, }, tc.args.statusScalingError }, @@ -174,7 +174,7 @@ func TestLateInitialize(t *testing.T) { func TestIsUpToDate(t *testing.T) { - defaultPolicy := pointer.String(`{ + defaultPolicy := pointer.ToOrNilIfZeroValue(`{ "Version": "2012-10-17", "Statement": [ { @@ -186,9 +186,9 @@ func TestIsUpToDate(t *testing.T) { }`) defaultScalingParameters := cloudsearch.ScalingParameters{ - DesiredPartitionCount: pointer.Int64(2), - DesiredInstanceType: pointer.String("small"), - DesiredReplicationCount: pointer.Int64(1), + DesiredPartitionCount: pointer.ToIntAsInt64(2), + DesiredInstanceType: pointer.ToOrNilIfZeroValue("small"), + DesiredReplicationCount: pointer.ToIntAsInt64(1), } type args struct { @@ -232,7 +232,7 @@ func TestIsUpToDate(t *testing.T) { "UpdateNeededAccessPolicy": { args: args{ policySpec: defaultPolicy, - policyStatus: pointer.String(`{ + policyStatus: pointer.ToOrNilIfZeroValue(`{ "Version": "2012-10-17", "Statement": [ { @@ -256,7 +256,7 @@ func TestIsUpToDate(t *testing.T) { }, "UpdateNeededAccessPolicyEmpty": { args: args{ - policySpec: pointer.String(" "), + policySpec: pointer.ToOrNilIfZeroValue(" "), policyStatus: defaultPolicy, policyStatusErr: nil, scalingSpec: defaultScalingParameters, @@ -293,9 +293,9 @@ func TestIsUpToDate(t *testing.T) { policyStatusErr: nil, scalingSpec: defaultScalingParameters, scalingStatus: cloudsearch.ScalingParameters{ - DesiredPartitionCount: pointer.Int64(1), - DesiredInstanceType: pointer.String("small"), - DesiredReplicationCount: pointer.Int64(1), + DesiredPartitionCount: pointer.ToIntAsInt64(1), + DesiredInstanceType: pointer.ToOrNilIfZeroValue("small"), + DesiredReplicationCount: pointer.ToIntAsInt64(1), }, scalingStatusPendingDeletion: false, scalingStatusErr: nil, @@ -357,7 +357,7 @@ func TestIsUpToDate(t *testing.T) { ScalingParameters: &cloudsearch.ScalingParametersStatus{ Options: &tc.args.scalingStatus, Status: &cloudsearch.OptionStatus{ - PendingDeletion: pointer.Bool(tc.args.scalingStatusPendingDeletion), + PendingDeletion: pointer.ToOrNilIfZeroValue(tc.args.scalingStatusPendingDeletion), }, }, }, tc.args.scalingStatusErr @@ -379,8 +379,8 @@ func TestIsUpToDate(t *testing.T) { }, }, &cloudsearch.DescribeDomainsOutput{ DomainStatusList: []*cloudsearch.DomainStatus{{ - Created: pointer.Bool(true), - Deleted: pointer.Bool(false), + Created: pointer.ToOrNilIfZeroValue(true), + Deleted: pointer.ToOrNilIfZeroValue(false), RequiresIndexDocuments: &tc.requiresIndexing, DomainName: &domainName, }}, diff --git a/pkg/controller/cloudwatchlogs/loggroup/setup.go b/pkg/controller/cloudwatchlogs/loggroup/setup.go index 34d810bb6b..669ba76fbd 100644 --- a/pkg/controller/cloudwatchlogs/loggroup/setup.go +++ b/pkg/controller/cloudwatchlogs/loggroup/setup.go @@ -94,7 +94,7 @@ type updater struct { } func filterList(cr *svcapitypes.LogGroup, obj *svcsdk.DescribeLogGroupsOutput) *svcsdk.DescribeLogGroupsOutput { - logGroupIdentifier := pointer.String(meta.GetExternalName(cr)) + logGroupIdentifier := pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) resp := &svcsdk.DescribeLogGroupsOutput{} for _, LogGroups := range obj.LogGroups { if pointer.StringValue(LogGroups.LogGroupName) == pointer.StringValue(logGroupIdentifier) { @@ -156,7 +156,7 @@ func (u *updater) update(ctx context.Context, mg resource.Managed) (managed.Exte } obj, err := u.client.DescribeLogGroupsWithContext(ctx, &svcsdk.DescribeLogGroupsInput{ - LogGroupNamePrefix: pointer.String(meta.GetExternalName(cr)), + LogGroupNamePrefix: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) if err != nil { return managed.ExternalUpdate{}, errorutils.Wrap(err, errCreate) @@ -193,7 +193,7 @@ func (u *updater) update(ctx context.Context, mg resource.Managed) (managed.Exte var zero int64 = 0 if cr.Spec.ForProvider.RetentionInDays == nil || pointer.Int64Value(cr.Spec.ForProvider.RetentionInDays) == pointer.Int64Value(&zero) { if _, err := u.client.DeleteRetentionPolicy(&svcsdk.DeleteRetentionPolicyInput{ - LogGroupName: pointer.String(meta.GetExternalName(cr)), + LogGroupName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }); err != nil { return managed.ExternalUpdate{}, errorutils.Wrap(err, errUpdate) } @@ -202,7 +202,7 @@ func (u *updater) update(ctx context.Context, mg resource.Managed) (managed.Exte if cr.Spec.ForProvider.RetentionInDays != nil && pointer.Int64Value(cr.Spec.ForProvider.RetentionInDays) != pointer.Int64Value(obj.LogGroups[0].RetentionInDays) { if _, err := u.client.PutRetentionPolicy(&svcsdk.PutRetentionPolicyInput{ - LogGroupName: pointer.String(meta.GetExternalName(cr)), + LogGroupName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), RetentionInDays: cr.Spec.ForProvider.RetentionInDays, }); err != nil { return managed.ExternalUpdate{}, errorutils.Wrap(err, errUpdate) diff --git a/pkg/controller/cognitoidentity/identitypool/setup.go b/pkg/controller/cognitoidentity/identitypool/setup.go index faa66bca16..c22799ad38 100644 --- a/pkg/controller/cognitoidentity/identitypool/setup.go +++ b/pkg/controller/cognitoidentity/identitypool/setup.go @@ -80,7 +80,7 @@ func SetupIdentityPool(mgr ctrl.Manager, o controller.Options) error { } func preObserve(_ context.Context, cr *svcapitypes.IdentityPool, obj *svcsdk.DescribeIdentityPoolInput) error { - obj.IdentityPoolId = pointer.String(meta.GetExternalName(cr)) + obj.IdentityPoolId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -121,7 +121,7 @@ func postCreate(_ context.Context, cr *svcapitypes.IdentityPool, obj *svcsdk.Ide } func preUpdate(_ context.Context, cr *svcapitypes.IdentityPool, obj *svcsdk.IdentityPool) error { - obj.IdentityPoolId = pointer.String(meta.GetExternalName(cr)) + obj.IdentityPoolId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.OpenIdConnectProviderARNs = cr.Spec.ForProvider.OpenIDConnectProviderARNs if cr.Spec.ForProvider.CognitoIdentityProviders != nil { providers := make([]*svcsdk.Provider, len(cr.Spec.ForProvider.CognitoIdentityProviders)) @@ -139,7 +139,7 @@ func preUpdate(_ context.Context, cr *svcapitypes.IdentityPool, obj *svcsdk.Iden } func preDelete(_ context.Context, cr *svcapitypes.IdentityPool, obj *svcsdk.DeleteIdentityPoolInput) (bool, error) { - obj.IdentityPoolId = pointer.String(meta.GetExternalName(cr)) + obj.IdentityPoolId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } diff --git a/pkg/controller/cognitoidentityprovider/group/setup.go b/pkg/controller/cognitoidentityprovider/group/setup.go index 6d88608c8d..047b5c4163 100644 --- a/pkg/controller/cognitoidentityprovider/group/setup.go +++ b/pkg/controller/cognitoidentityprovider/group/setup.go @@ -78,13 +78,13 @@ func SetupGroup(mgr ctrl.Manager, o controller.Options) error { } func preObserve(_ context.Context, cr *svcapitypes.Group, obj *svcsdk.GetGroupInput) error { - obj.GroupName = pointer.String(meta.GetExternalName(cr)) + obj.GroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.UserPoolId = cr.Spec.ForProvider.UserPoolID return nil } func preDelete(_ context.Context, cr *svcapitypes.Group, obj *svcsdk.DeleteGroupInput) (bool, error) { - obj.GroupName = pointer.String(meta.GetExternalName(cr)) + obj.GroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.UserPoolId = cr.Spec.ForProvider.UserPoolID return false, nil } @@ -102,14 +102,14 @@ func postObserve(_ context.Context, cr *svcapitypes.Group, obj *svcsdk.GetGroupO func preCreate(_ context.Context, cr *svcapitypes.Group, obj *svcsdk.CreateGroupInput) error { obj.UserPoolId = cr.Spec.ForProvider.UserPoolID obj.RoleArn = cr.Spec.ForProvider.RoleARN - obj.GroupName = pointer.String(meta.GetExternalName(cr)) + obj.GroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } func preUpdate(_ context.Context, cr *svcapitypes.Group, obj *svcsdk.UpdateGroupInput) error { obj.UserPoolId = cr.Spec.ForProvider.UserPoolID obj.RoleArn = cr.Spec.ForProvider.RoleARN - obj.GroupName = pointer.String(meta.GetExternalName(cr)) + obj.GroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } diff --git a/pkg/controller/cognitoidentityprovider/identityprovider/setup.go b/pkg/controller/cognitoidentityprovider/identityprovider/setup.go index fa812e08f9..79fa742844 100644 --- a/pkg/controller/cognitoidentityprovider/identityprovider/setup.go +++ b/pkg/controller/cognitoidentityprovider/identityprovider/setup.go @@ -91,13 +91,13 @@ type custom struct { } func preObserve(_ context.Context, cr *svcapitypes.IdentityProvider, obj *svcsdk.DescribeIdentityProviderInput) error { - obj.ProviderName = pointer.String(meta.GetExternalName(cr)) + obj.ProviderName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.UserPoolId = cr.Spec.ForProvider.UserPoolID return nil } func preDelete(_ context.Context, cr *svcapitypes.IdentityProvider, obj *svcsdk.DeleteIdentityProviderInput) (bool, error) { - obj.ProviderName = pointer.String(meta.GetExternalName(cr)) + obj.ProviderName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.UserPoolId = cr.Spec.ForProvider.UserPoolID return false, nil } @@ -114,7 +114,7 @@ func postObserve(_ context.Context, cr *svcapitypes.IdentityProvider, obj *svcsd func (e *custom) preCreate(ctx context.Context, cr *svcapitypes.IdentityProvider, obj *svcsdk.CreateIdentityProviderInput) error { obj.UserPoolId = cr.Spec.ForProvider.UserPoolID - obj.ProviderName = pointer.String(meta.GetExternalName(cr)) + obj.ProviderName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) providerDetails, err := e.resolver.GetProviderDetails(ctx, e.kube, &cr.Spec.ForProvider.ProviderDetailsSecretRef) if err != nil { @@ -127,7 +127,7 @@ func (e *custom) preCreate(ctx context.Context, cr *svcapitypes.IdentityProvider func (e *custom) preUpdate(ctx context.Context, cr *svcapitypes.IdentityProvider, obj *svcsdk.UpdateIdentityProviderInput) error { obj.UserPoolId = cr.Spec.ForProvider.UserPoolID - obj.ProviderName = pointer.String(meta.GetExternalName(cr)) + obj.ProviderName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) providerDetails, err := e.resolver.GetProviderDetails(ctx, e.kube, &cr.Spec.ForProvider.ProviderDetailsSecretRef) if err != nil { diff --git a/pkg/controller/cognitoidentityprovider/resourceserver/setup.go b/pkg/controller/cognitoidentityprovider/resourceserver/setup.go index f6ba700116..ddb1d246a5 100644 --- a/pkg/controller/cognitoidentityprovider/resourceserver/setup.go +++ b/pkg/controller/cognitoidentityprovider/resourceserver/setup.go @@ -63,12 +63,12 @@ func SetupResourceServer(mgr ctrl.Manager, o controller.Options) error { } func preObserve(_ context.Context, cr *svcapitypes.ResourceServer, obj *svcsdk.DescribeResourceServerInput) error { - obj.Identifier = pointer.String(meta.GetExternalName(cr)) + obj.Identifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } func preDelete(_ context.Context, cr *svcapitypes.ResourceServer, obj *svcsdk.DeleteResourceServerInput) (bool, error) { - obj.Identifier = pointer.String(meta.GetExternalName(cr)) + obj.Identifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.UserPoolId = cr.Spec.ForProvider.UserPoolID return false, nil } @@ -87,7 +87,7 @@ func postObserve(_ context.Context, cr *svcapitypes.ResourceServer, obj *svcsdk. } func preCreate(_ context.Context, cr *svcapitypes.ResourceServer, obj *svcsdk.CreateResourceServerInput) error { - obj.Identifier = pointer.String(meta.GetExternalName(cr)) + obj.Identifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.UserPoolId = cr.Spec.ForProvider.UserPoolID return nil } diff --git a/pkg/controller/cognitoidentityprovider/userpool/setup.go b/pkg/controller/cognitoidentityprovider/userpool/setup.go index 14c0987358..6690c759e9 100644 --- a/pkg/controller/cognitoidentityprovider/userpool/setup.go +++ b/pkg/controller/cognitoidentityprovider/userpool/setup.go @@ -96,7 +96,7 @@ type hooks struct { func preObserve(_ context.Context, cr *svcapitypes.UserPool, obj *svcsdk.DescribeUserPoolInput) error { if meta.GetExternalName(cr) != "" { - obj.UserPoolId = pointer.String(meta.GetExternalName(cr)) + obj.UserPoolId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) } return nil } @@ -112,7 +112,7 @@ func postObserve(_ context.Context, cr *svcapitypes.UserPool, obj *svcsdk.Descri } func (e *hooks) preUpdate(ctx context.Context, cr *svcapitypes.UserPool, obj *svcsdk.UpdateUserPoolInput) error { - obj.UserPoolId = pointer.String(meta.GetExternalName(cr)) + obj.UserPoolId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) // "Cannot turn MFA functionality ON, once the user pool has been created" // -> concerns UpdateUserPool, not SetUserPoolMfaConfig @@ -121,7 +121,7 @@ func (e *hooks) preUpdate(ctx context.Context, cr *svcapitypes.UserPool, obj *sv } func preDelete(_ context.Context, cr *svcapitypes.UserPool, obj *svcsdk.DeleteUserPoolInput) (bool, error) { - obj.UserPoolId = pointer.String(meta.GetExternalName(cr)) + obj.UserPoolId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } @@ -129,7 +129,7 @@ func preCreate(_ context.Context, cr *svcapitypes.UserPool, obj *svcsdk.CreateUs // for Creation need to set MFA to OFF, // bc if MFA ON and no SmsConfiguration provided, AWS throws error // in first Update, we can use SetUserPoolMfaConfig to set all MFA stuff (e.g. Token) - obj.MfaConfiguration = pointer.String(svcsdk.UserPoolMfaTypeOff) + obj.MfaConfiguration = pointer.ToOrNilIfZeroValue(svcsdk.UserPoolMfaTypeOff) return nil } @@ -431,7 +431,7 @@ func areVerificationMessageTemplateEqual(spec *svcapitypes.VerificationMessageTe func (e *hooks) areMFAConfigEqual(cr *svcapitypes.UserPool) (bool, error) { - out, err := e.client.GetUserPoolMfaConfig(&svcsdk.GetUserPoolMfaConfigInput{UserPoolId: pointer.String(meta.GetExternalName(cr))}) + out, err := e.client.GetUserPoolMfaConfig(&svcsdk.GetUserPoolMfaConfigInput{UserPoolId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))}) if err != nil { return true, errors.Wrap(err, errFailedGetMFARequest) } @@ -461,20 +461,20 @@ func (e *hooks) areMFAConfigEqual(cr *svcapitypes.UserPool) (bool, error) { func lateInitialize(cr *svcapitypes.UserPoolParameters, resp *svcsdk.DescribeUserPoolOutput) error { instance := resp.UserPool - cr.MFAConfiguration = pointer.LateInitializeStringPtr(cr.MFAConfiguration, instance.MfaConfiguration) + cr.MFAConfiguration = pointer.LateInitialize(cr.MFAConfiguration, instance.MfaConfiguration) if instance.AdminCreateUserConfig != nil { if cr.AdminCreateUserConfig == nil { cr.AdminCreateUserConfig = &svcapitypes.AdminCreateUserConfigType{} } - cr.AdminCreateUserConfig.AllowAdminCreateUserOnly = pointer.LateInitializeBoolPtr(cr.AdminCreateUserConfig.AllowAdminCreateUserOnly, instance.AdminCreateUserConfig.AllowAdminCreateUserOnly) + cr.AdminCreateUserConfig.AllowAdminCreateUserOnly = pointer.LateInitialize(cr.AdminCreateUserConfig.AllowAdminCreateUserOnly, instance.AdminCreateUserConfig.AllowAdminCreateUserOnly) } if instance.EmailConfiguration != nil { if cr.EmailConfiguration == nil { cr.EmailConfiguration = &svcapitypes.EmailConfigurationType{} } - cr.EmailConfiguration.EmailSendingAccount = pointer.LateInitializeStringPtr(cr.EmailConfiguration.EmailSendingAccount, instance.EmailConfiguration.EmailSendingAccount) + cr.EmailConfiguration.EmailSendingAccount = pointer.LateInitialize(cr.EmailConfiguration.EmailSendingAccount, instance.EmailConfiguration.EmailSendingAccount) } if instance.Policies != nil { @@ -482,12 +482,12 @@ func lateInitialize(cr *svcapitypes.UserPoolParameters, resp *svcsdk.DescribeUse cr.Policies = &svcapitypes.UserPoolPolicyType{PasswordPolicy: &svcapitypes.PasswordPolicyType{}} } if instance.Policies.PasswordPolicy != nil { - cr.Policies.PasswordPolicy.MinimumLength = pointer.LateInitializeInt64Ptr(cr.Policies.PasswordPolicy.MinimumLength, instance.Policies.PasswordPolicy.MinimumLength) - cr.Policies.PasswordPolicy.RequireLowercase = pointer.LateInitializeBoolPtr(cr.Policies.PasswordPolicy.RequireLowercase, instance.Policies.PasswordPolicy.RequireLowercase) - cr.Policies.PasswordPolicy.RequireNumbers = pointer.LateInitializeBoolPtr(cr.Policies.PasswordPolicy.RequireNumbers, instance.Policies.PasswordPolicy.RequireNumbers) - cr.Policies.PasswordPolicy.RequireSymbols = pointer.LateInitializeBoolPtr(cr.Policies.PasswordPolicy.RequireSymbols, instance.Policies.PasswordPolicy.RequireSymbols) - cr.Policies.PasswordPolicy.RequireUppercase = pointer.LateInitializeBoolPtr(cr.Policies.PasswordPolicy.RequireUppercase, instance.Policies.PasswordPolicy.RequireUppercase) - cr.Policies.PasswordPolicy.TemporaryPasswordValidityDays = pointer.LateInitializeInt64Ptr(cr.Policies.PasswordPolicy.TemporaryPasswordValidityDays, instance.Policies.PasswordPolicy.TemporaryPasswordValidityDays) + cr.Policies.PasswordPolicy.MinimumLength = pointer.LateInitialize(cr.Policies.PasswordPolicy.MinimumLength, instance.Policies.PasswordPolicy.MinimumLength) + cr.Policies.PasswordPolicy.RequireLowercase = pointer.LateInitialize(cr.Policies.PasswordPolicy.RequireLowercase, instance.Policies.PasswordPolicy.RequireLowercase) + cr.Policies.PasswordPolicy.RequireNumbers = pointer.LateInitialize(cr.Policies.PasswordPolicy.RequireNumbers, instance.Policies.PasswordPolicy.RequireNumbers) + cr.Policies.PasswordPolicy.RequireSymbols = pointer.LateInitialize(cr.Policies.PasswordPolicy.RequireSymbols, instance.Policies.PasswordPolicy.RequireSymbols) + cr.Policies.PasswordPolicy.RequireUppercase = pointer.LateInitialize(cr.Policies.PasswordPolicy.RequireUppercase, instance.Policies.PasswordPolicy.RequireUppercase) + cr.Policies.PasswordPolicy.TemporaryPasswordValidityDays = pointer.LateInitialize(cr.Policies.PasswordPolicy.TemporaryPasswordValidityDays, instance.Policies.PasswordPolicy.TemporaryPasswordValidityDays) } } @@ -495,7 +495,7 @@ func lateInitialize(cr *svcapitypes.UserPoolParameters, resp *svcsdk.DescribeUse if cr.VerificationMessageTemplate == nil { cr.VerificationMessageTemplate = &svcapitypes.VerificationMessageTemplateType{} } - cr.VerificationMessageTemplate.DefaultEmailOption = pointer.LateInitializeStringPtr(cr.VerificationMessageTemplate.DefaultEmailOption, instance.VerificationMessageTemplate.DefaultEmailOption) + cr.VerificationMessageTemplate.DefaultEmailOption = pointer.LateInitialize(cr.VerificationMessageTemplate.DefaultEmailOption, instance.VerificationMessageTemplate.DefaultEmailOption) } // Info: to avoid redundancy+problems, do not lateInit conflicting fields @@ -511,7 +511,7 @@ func (e *hooks) setMfaConfiguration(ctx context.Context, cr *svcapitypes.UserPoo if pointer.StringValue(cr.Spec.ForProvider.MFAConfiguration) != svcsdk.UserPoolMfaTypeOff { mfaConfig := &svcsdk.SetUserPoolMfaConfigInput{ MfaConfiguration: cr.Spec.ForProvider.MFAConfiguration, - UserPoolId: pointer.String(meta.GetExternalName(cr)), + UserPoolId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), } // even without setting it here, diff --git a/pkg/controller/cognitoidentityprovider/userpoolclient/setup.go b/pkg/controller/cognitoidentityprovider/userpoolclient/setup.go index 7bf5bb2e00..9b867d5b83 100644 --- a/pkg/controller/cognitoidentityprovider/userpoolclient/setup.go +++ b/pkg/controller/cognitoidentityprovider/userpoolclient/setup.go @@ -82,14 +82,14 @@ func SetupUserPoolClient(mgr ctrl.Manager, o controller.Options) error { func preObserve(_ context.Context, cr *svcapitypes.UserPoolClient, obj *svcsdk.DescribeUserPoolClientInput) error { if meta.GetExternalName(cr) != "" { - obj.ClientId = pointer.String(meta.GetExternalName(cr)) + obj.ClientId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) } obj.UserPoolId = cr.Spec.ForProvider.UserPoolID return nil } func preDelete(_ context.Context, cr *svcapitypes.UserPoolClient, obj *svcsdk.DeleteUserPoolClientInput) (bool, error) { - obj.ClientId = pointer.String(meta.GetExternalName(cr)) + obj.ClientId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.UserPoolId = cr.Spec.ForProvider.UserPoolID return false, nil } @@ -195,6 +195,6 @@ func areTokenValidityUnitsEqual(spec *svcapitypes.TokenValidityUnitsType, curren func lateInitialize(cr *svcapitypes.UserPoolClientParameters, resp *svcsdk.DescribeUserPoolClientOutput) error { instance := resp.UserPoolClient - cr.RefreshTokenValidity = pointer.LateInitializeInt64Ptr(cr.RefreshTokenValidity, instance.RefreshTokenValidity) + cr.RefreshTokenValidity = pointer.LateInitialize(cr.RefreshTokenValidity, instance.RefreshTokenValidity) return nil } diff --git a/pkg/controller/cognitoidentityprovider/userpooldomain/setup.go b/pkg/controller/cognitoidentityprovider/userpooldomain/setup.go index 8cc762b912..2fe56b9414 100644 --- a/pkg/controller/cognitoidentityprovider/userpooldomain/setup.go +++ b/pkg/controller/cognitoidentityprovider/userpooldomain/setup.go @@ -74,12 +74,12 @@ func SetupUserPoolDomain(mgr ctrl.Manager, o controller.Options) error { } func preObserve(_ context.Context, cr *svcapitypes.UserPoolDomain, obj *svcsdk.DescribeUserPoolDomainInput) error { - obj.Domain = pointer.String(meta.GetExternalName(cr)) + obj.Domain = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } func preDelete(_ context.Context, cr *svcapitypes.UserPoolDomain, obj *svcsdk.DeleteUserPoolDomainInput) (bool, error) { - obj.Domain = pointer.String(meta.GetExternalName(cr)) + obj.Domain = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.UserPoolId = cr.Spec.ForProvider.UserPoolID return false, nil } @@ -98,7 +98,7 @@ func postObserve(_ context.Context, cr *svcapitypes.UserPoolDomain, obj *svcsdk. } func preCreate(_ context.Context, cr *svcapitypes.UserPoolDomain, obj *svcsdk.CreateUserPoolDomainInput) error { - obj.Domain = pointer.String(meta.GetExternalName(cr)) + obj.Domain = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.UserPoolId = cr.Spec.ForProvider.UserPoolID return nil } diff --git a/pkg/controller/dax/cluster/setup.go b/pkg/controller/dax/cluster/setup.go index 4e20ffd0ba..392288111a 100644 --- a/pkg/controller/dax/cluster/setup.go +++ b/pkg/controller/dax/cluster/setup.go @@ -58,7 +58,7 @@ func SetupCluster(mgr ctrl.Manager, o controller.Options) error { } func preObserve(_ context.Context, cr *svcapitypes.Cluster, obj *svcsdk.DescribeClustersInput) error { - obj.ClusterNames = append(obj.ClusterNames, pointer.String(meta.GetExternalName(cr))) + obj.ClusterNames = append(obj.ClusterNames, pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))) return nil } @@ -79,7 +79,7 @@ func postObserve(_ context.Context, cr *svcapitypes.Cluster, resp *svcsdk.Descri func preCreate(_ context.Context, cr *svcapitypes.Cluster, obj *svcsdk.CreateClusterInput) error { meta.SetExternalName(cr, cr.Name) - obj.ClusterName = pointer.String(meta.GetExternalName(cr)) + obj.ClusterName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.IamRoleArn = cr.Spec.ForProvider.IAMRoleARN obj.ParameterGroupName = cr.Spec.ForProvider.ParameterGroupName obj.SubnetGroupName = cr.Spec.ForProvider.SubnetGroupName @@ -89,21 +89,21 @@ func preCreate(_ context.Context, cr *svcapitypes.Cluster, obj *svcsdk.CreateClu } func preUpdate(_ context.Context, cr *svcapitypes.Cluster, obj *svcsdk.UpdateClusterInput) error { - obj.ClusterName = pointer.String(meta.GetExternalName(cr)) + obj.ClusterName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.NotificationTopicArn = cr.Spec.ForProvider.NotificationTopicARN if cr.Spec.ForProvider.ParameterGroupName != nil { - obj.ParameterGroupName = pointer.String(*cr.Spec.ForProvider.ParameterGroupName) + obj.ParameterGroupName = pointer.ToOrNilIfZeroValue(*cr.Spec.ForProvider.ParameterGroupName) } if cr.Spec.ForProvider.SecurityGroupIDs != nil { for _, s := range cr.Spec.ForProvider.SecurityGroupIDs { - obj.SecurityGroupIds = append(obj.SecurityGroupIds, pointer.String(*s)) + obj.SecurityGroupIds = append(obj.SecurityGroupIds, pointer.ToOrNilIfZeroValue(*s)) } } return nil } func preDelete(_ context.Context, cr *svcapitypes.Cluster, obj *svcsdk.DeleteClusterInput) (bool, error) { - obj.ClusterName = pointer.String(meta.GetExternalName(cr)) + obj.ClusterName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } @@ -115,8 +115,8 @@ func lateInitialize(in *svcapitypes.ClusterParameters, out *svcsdk.DescribeClust in.AvailabilityZones[i] = group.AvailabilityZone } } - in.ClusterEndpointEncryptionType = pointer.LateInitializeStringPtr(in.ClusterEndpointEncryptionType, c.ClusterEndpointEncryptionType) - in.PreferredMaintenanceWindow = pointer.LateInitializeStringPtr(in.PreferredMaintenanceWindow, c.PreferredMaintenanceWindow) + in.ClusterEndpointEncryptionType = pointer.LateInitialize(in.ClusterEndpointEncryptionType, c.ClusterEndpointEncryptionType) + in.PreferredMaintenanceWindow = pointer.LateInitialize(in.PreferredMaintenanceWindow, c.PreferredMaintenanceWindow) if in.SecurityGroupIDs == nil { in.SecurityGroupIDs = make([]*string, len(c.SecurityGroups)) for i, group := range c.SecurityGroups { diff --git a/pkg/controller/dax/cluster/setup_test.go b/pkg/controller/dax/cluster/setup_test.go index 1e78fb61f2..0b17b46a77 100644 --- a/pkg/controller/dax/cluster/setup_test.go +++ b/pkg/controller/dax/cluster/setup_test.go @@ -134,7 +134,7 @@ func withName(value string) daxModifier { func withStatusName(value string) daxModifier { return func(o *svcapitypes.Cluster) { - o.Status.AtProvider.ClusterName = pointer.String(value) + o.Status.AtProvider.ClusterName = pointer.ToOrNilIfZeroValue(value) } } @@ -146,61 +146,61 @@ func withSpec(value svcapitypes.ClusterParameters) daxModifier { func withDescription(value string) daxModifier { return func(o *svcapitypes.Cluster) { - o.Spec.ForProvider.Description = pointer.String(value) + o.Spec.ForProvider.Description = pointer.ToOrNilIfZeroValue(value) } } func withParameterGroupName(value string) daxModifier { return func(o *svcapitypes.Cluster) { - o.Spec.ForProvider.ParameterGroupName = pointer.String(value) + o.Spec.ForProvider.ParameterGroupName = pointer.ToOrNilIfZeroValue(value) } } func withSubnetGroupName(value string) daxModifier { return func(o *svcapitypes.Cluster) { - o.Spec.ForProvider.SubnetGroupName = pointer.String(value) + o.Spec.ForProvider.SubnetGroupName = pointer.ToOrNilIfZeroValue(value) } } func withIAMRoleARN(value string) daxModifier { return func(o *svcapitypes.Cluster) { - o.Spec.ForProvider.IAMRoleARN = pointer.String(value) + o.Spec.ForProvider.IAMRoleARN = pointer.ToOrNilIfZeroValue(value) } } func withSecurityGroupIDs(value string) daxModifier { return func(o *svcapitypes.Cluster) { - o.Spec.ForProvider.SecurityGroupIDs = append(o.Spec.ForProvider.SecurityGroupIDs, pointer.String(value)) + o.Spec.ForProvider.SecurityGroupIDs = append(o.Spec.ForProvider.SecurityGroupIDs, pointer.ToOrNilIfZeroValue(value)) } } func withAvailabilityZones(value string) daxModifier { return func(o *svcapitypes.Cluster) { - o.Spec.ForProvider.AvailabilityZones = append(o.Spec.ForProvider.AvailabilityZones, pointer.String(value)) + o.Spec.ForProvider.AvailabilityZones = append(o.Spec.ForProvider.AvailabilityZones, pointer.ToOrNilIfZeroValue(value)) } } func withPreferredMaintenanceWindow(value string) daxModifier { return func(o *svcapitypes.Cluster) { - o.Spec.ForProvider.PreferredMaintenanceWindow = pointer.String(value) + o.Spec.ForProvider.PreferredMaintenanceWindow = pointer.ToOrNilIfZeroValue(value) } } func withClusterEndpointEncryptionType(value string) daxModifier { return func(o *svcapitypes.Cluster) { - o.Spec.ForProvider.ClusterEndpointEncryptionType = pointer.String(value) + o.Spec.ForProvider.ClusterEndpointEncryptionType = pointer.ToOrNilIfZeroValue(value) } } func withNodeType(value string) daxModifier { return func(o *svcapitypes.Cluster) { - o.Spec.ForProvider.NodeType = pointer.String(value) + o.Spec.ForProvider.NodeType = pointer.ToOrNilIfZeroValue(value) } } func withNotificationTopicARN(value string) daxModifier { return func(o *svcapitypes.Cluster) { - o.Spec.ForProvider.NotificationTopicARN = pointer.String(value) + o.Spec.ForProvider.NotificationTopicARN = pointer.ToOrNilIfZeroValue(value) } } @@ -218,53 +218,53 @@ func withConditions(value ...xpv1.Condition) daxModifier { func baseCluster() *dax.Cluster { return &dax.Cluster{ - ActiveNodes: pointer.Int64(testActiveNodes), - ClusterArn: pointer.String(testClusterARN), + ActiveNodes: pointer.ToIntAsInt64(testActiveNodes), + ClusterArn: pointer.ToOrNilIfZeroValue(testClusterARN), ClusterDiscoveryEndpoint: &dax.Endpoint{ - Address: pointer.String(testEndpointAddress), - Port: pointer.Int64(testEndpointPort), - URL: pointer.String(testEndpointURL), + Address: pointer.ToOrNilIfZeroValue(testEndpointAddress), + Port: pointer.ToIntAsInt64(testEndpointPort), + URL: pointer.ToOrNilIfZeroValue(testEndpointURL), }, - ClusterEndpointEncryptionType: pointer.String(testClusterEndpointEncryptionType), - ClusterName: pointer.String(testClusterName), - Description: pointer.String(testDescription), - IamRoleArn: pointer.String(testIamRoleARN), - NodeIdsToRemove: []*string{pointer.String(testNodeIDToRemove), pointer.String(testOtherNodeIDToRemove)}, - NodeType: pointer.String(testNodeType), + ClusterEndpointEncryptionType: pointer.ToOrNilIfZeroValue(testClusterEndpointEncryptionType), + ClusterName: pointer.ToOrNilIfZeroValue(testClusterName), + Description: pointer.ToOrNilIfZeroValue(testDescription), + IamRoleArn: pointer.ToOrNilIfZeroValue(testIamRoleARN), + NodeIdsToRemove: []*string{pointer.ToOrNilIfZeroValue(testNodeIDToRemove), pointer.ToOrNilIfZeroValue(testOtherNodeIDToRemove)}, + NodeType: pointer.ToOrNilIfZeroValue(testNodeType), Nodes: []*dax.Node{ { - AvailabilityZone: pointer.String(testAvailabilityZone), - NodeId: pointer.String(testNodeID), - NodeStatus: pointer.String(testNodeStatus), - ParameterGroupStatus: pointer.String(testParameterGroupStatus), + AvailabilityZone: pointer.ToOrNilIfZeroValue(testAvailabilityZone), + NodeId: pointer.ToOrNilIfZeroValue(testNodeID), + NodeStatus: pointer.ToOrNilIfZeroValue(testNodeStatus), + ParameterGroupStatus: pointer.ToOrNilIfZeroValue(testParameterGroupStatus), }, { - AvailabilityZone: pointer.String(testOtherAvailabilityZone), - NodeId: pointer.String(testOtherNodeID), - NodeStatus: pointer.String(testOtherNodeStatus), - ParameterGroupStatus: pointer.String(testOtherParameterGroupStatus), + AvailabilityZone: pointer.ToOrNilIfZeroValue(testOtherAvailabilityZone), + NodeId: pointer.ToOrNilIfZeroValue(testOtherNodeID), + NodeStatus: pointer.ToOrNilIfZeroValue(testOtherNodeStatus), + ParameterGroupStatus: pointer.ToOrNilIfZeroValue(testOtherParameterGroupStatus), }, }, NotificationConfiguration: &dax.NotificationConfiguration{ - TopicArn: pointer.String(testTopicARN), - TopicStatus: pointer.String(testTopicStatus), + TopicArn: pointer.ToOrNilIfZeroValue(testTopicARN), + TopicStatus: pointer.ToOrNilIfZeroValue(testTopicStatus), }, ParameterGroup: &dax.ParameterGroupStatus{ - NodeIdsToReboot: []*string{pointer.String(testNodeIDToReboot)}, - ParameterApplyStatus: pointer.String(testParameterApplyStatus), - ParameterGroupName: pointer.String(testParameterGroupName), + NodeIdsToReboot: []*string{pointer.ToOrNilIfZeroValue(testNodeIDToReboot)}, + ParameterApplyStatus: pointer.ToOrNilIfZeroValue(testParameterApplyStatus), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), }, - PreferredMaintenanceWindow: pointer.String(testPreferredMaintenanceWindow), - SSEDescription: &dax.SSEDescription{Status: pointer.String(testSSEDescriptionStatus)}, + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(testPreferredMaintenanceWindow), + SSEDescription: &dax.SSEDescription{Status: pointer.ToOrNilIfZeroValue(testSSEDescriptionStatus)}, SecurityGroups: []*dax.SecurityGroupMembership{ { - SecurityGroupIdentifier: pointer.String(testSecurityGroupIdentifier), - Status: pointer.String(testSecurityGroupStatus), + SecurityGroupIdentifier: pointer.ToOrNilIfZeroValue(testSecurityGroupIdentifier), + Status: pointer.ToOrNilIfZeroValue(testSecurityGroupStatus), }, }, - Status: pointer.String(testStatus), - SubnetGroup: pointer.String(testSubnetGroup), - TotalNodes: pointer.Int64(2), + Status: pointer.ToOrNilIfZeroValue(testStatus), + SubnetGroup: pointer.ToOrNilIfZeroValue(testSubnetGroup), + TotalNodes: pointer.ToIntAsInt64(2), } } @@ -272,71 +272,71 @@ func baseClusterParameters() svcapitypes.ClusterParameters { return svcapitypes.ClusterParameters{ Region: "", AvailabilityZones: []*string{ - pointer.String(testAvailabilityZone), - pointer.String(testOtherAvailabilityZone), + pointer.ToOrNilIfZeroValue(testAvailabilityZone), + pointer.ToOrNilIfZeroValue(testOtherAvailabilityZone), }, - ClusterEndpointEncryptionType: pointer.String(testClusterEndpointEncryptionType), - Description: pointer.String(testDescription), - NodeType: pointer.String(testNodeType), - PreferredMaintenanceWindow: pointer.String(testPreferredMaintenanceWindow), - ReplicationFactor: pointer.Int64(testReplicationFactor), - SSESpecification: &svcapitypes.SSESpecification{Enabled: pointer.Bool(testSSESpecificationEnabled)}, - Tags: []*svcapitypes.Tag{{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}}, + ClusterEndpointEncryptionType: pointer.ToOrNilIfZeroValue(testClusterEndpointEncryptionType), + Description: pointer.ToOrNilIfZeroValue(testDescription), + NodeType: pointer.ToOrNilIfZeroValue(testNodeType), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(testPreferredMaintenanceWindow), + ReplicationFactor: pointer.ToIntAsInt64(testReplicationFactor), + SSESpecification: &svcapitypes.SSESpecification{Enabled: pointer.ToOrNilIfZeroValue(testSSESpecificationEnabled)}, + Tags: []*svcapitypes.Tag{{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}}, CustomClusterParameters: svcapitypes.CustomClusterParameters{ - NotificationTopicARN: pointer.String(testTopicARN), - IAMRoleARN: pointer.String(testIamRoleARN), - ParameterGroupName: pointer.String(testParameterGroupName), - SubnetGroupName: pointer.String(testSubnetGroupName), - SecurityGroupIDs: []*string{pointer.String(testSecurityGroupIdentifier)}, + NotificationTopicARN: pointer.ToOrNilIfZeroValue(testTopicARN), + IAMRoleARN: pointer.ToOrNilIfZeroValue(testIamRoleARN), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), + SecurityGroupIDs: []*string{pointer.ToOrNilIfZeroValue(testSecurityGroupIdentifier)}, }, } } func baseClusterObservation() svcapitypes.ClusterObservation { return svcapitypes.ClusterObservation{ - ActiveNodes: pointer.Int64(testActiveNodes), - ClusterARN: pointer.String(testClusterARN), + ActiveNodes: pointer.ToIntAsInt64(testActiveNodes), + ClusterARN: pointer.ToOrNilIfZeroValue(testClusterARN), ClusterDiscoveryEndpoint: &svcapitypes.Endpoint{ - Address: pointer.String(testEndpointAddress), - Port: pointer.Int64(testEndpointPort), - URL: pointer.String(testEndpointURL), + Address: pointer.ToOrNilIfZeroValue(testEndpointAddress), + Port: pointer.ToIntAsInt64(testEndpointPort), + URL: pointer.ToOrNilIfZeroValue(testEndpointURL), }, - ClusterName: pointer.String(testClusterName), - IAMRoleARN: pointer.String(testIamRoleARN), - NodeIDsToRemove: []*string{pointer.String(testNodeIDToRemove), pointer.String(testOtherNodeIDToRemove)}, + ClusterName: pointer.ToOrNilIfZeroValue(testClusterName), + IAMRoleARN: pointer.ToOrNilIfZeroValue(testIamRoleARN), + NodeIDsToRemove: []*string{pointer.ToOrNilIfZeroValue(testNodeIDToRemove), pointer.ToOrNilIfZeroValue(testOtherNodeIDToRemove)}, Nodes: []*svcapitypes.Node{ { - AvailabilityZone: pointer.String(testAvailabilityZone), - NodeID: pointer.String(testNodeID), - NodeStatus: pointer.String(testNodeStatus), - ParameterGroupStatus: pointer.String(testParameterGroupStatus), + AvailabilityZone: pointer.ToOrNilIfZeroValue(testAvailabilityZone), + NodeID: pointer.ToOrNilIfZeroValue(testNodeID), + NodeStatus: pointer.ToOrNilIfZeroValue(testNodeStatus), + ParameterGroupStatus: pointer.ToOrNilIfZeroValue(testParameterGroupStatus), }, { - AvailabilityZone: pointer.String(testOtherAvailabilityZone), - NodeID: pointer.String(testOtherNodeID), - NodeStatus: pointer.String(testOtherNodeStatus), - ParameterGroupStatus: pointer.String(testOtherParameterGroupStatus), + AvailabilityZone: pointer.ToOrNilIfZeroValue(testOtherAvailabilityZone), + NodeID: pointer.ToOrNilIfZeroValue(testOtherNodeID), + NodeStatus: pointer.ToOrNilIfZeroValue(testOtherNodeStatus), + ParameterGroupStatus: pointer.ToOrNilIfZeroValue(testOtherParameterGroupStatus), }, }, NotificationConfiguration: &svcapitypes.NotificationConfiguration{ - TopicARN: pointer.String(testTopicARN), - TopicStatus: pointer.String(testTopicStatus), + TopicARN: pointer.ToOrNilIfZeroValue(testTopicARN), + TopicStatus: pointer.ToOrNilIfZeroValue(testTopicStatus), }, ParameterGroup: &svcapitypes.ParameterGroupStatus_SDK{ - NodeIDsToReboot: []*string{pointer.String(testNodeIDToReboot)}, - ParameterApplyStatus: pointer.String(testParameterApplyStatus), - ParameterGroupName: pointer.String(testParameterGroupName), + NodeIDsToReboot: []*string{pointer.ToOrNilIfZeroValue(testNodeIDToReboot)}, + ParameterApplyStatus: pointer.ToOrNilIfZeroValue(testParameterApplyStatus), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), }, - SSEDescription: &svcapitypes.SSEDescription{Status: pointer.String(testSSEDescriptionStatus)}, + SSEDescription: &svcapitypes.SSEDescription{Status: pointer.ToOrNilIfZeroValue(testSSEDescriptionStatus)}, SecurityGroups: []*svcapitypes.SecurityGroupMembership{ { - SecurityGroupIdentifier: pointer.String(testSecurityGroupIdentifier), - Status: pointer.String(testSecurityGroupStatus), + SecurityGroupIdentifier: pointer.ToOrNilIfZeroValue(testSecurityGroupIdentifier), + Status: pointer.ToOrNilIfZeroValue(testSecurityGroupStatus), }, }, - Status: pointer.String(testStatus), - SubnetGroup: pointer.String(testSubnetGroup), - TotalNodes: pointer.Int64(2), + Status: pointer.ToOrNilIfZeroValue(testStatus), + SubnetGroup: pointer.ToOrNilIfZeroValue(testSubnetGroup), + TotalNodes: pointer.ToIntAsInt64(2), } } @@ -879,7 +879,7 @@ func TestUpdate(t *testing.T) { dax: &fake.MockDaxClient{ MockUpdateClusterWithContext: func(c context.Context, uci *dax.UpdateClusterInput, o []request.Option) (*dax.UpdateClusterOutput, error) { return &dax.UpdateClusterOutput{Cluster: &dax.Cluster{ - ClusterName: pointer.String(testClusterName), + ClusterName: pointer.ToOrNilIfZeroValue(testClusterName), }}, nil }, }, @@ -899,8 +899,8 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &dax.UpdateClusterInput{ - ClusterName: pointer.String(testClusterName), - Description: pointer.String(testDescription), + ClusterName: pointer.ToOrNilIfZeroValue(testClusterName), + Description: pointer.ToOrNilIfZeroValue(testDescription), }, }, }, @@ -912,7 +912,7 @@ func TestUpdate(t *testing.T) { dax: &fake.MockDaxClient{ MockUpdateClusterWithContext: func(c context.Context, uci *dax.UpdateClusterInput, o []request.Option) (*dax.UpdateClusterOutput, error) { return &dax.UpdateClusterOutput{Cluster: &dax.Cluster{ - ClusterName: pointer.String(testClusterName), + ClusterName: pointer.ToOrNilIfZeroValue(testClusterName), }}, nil }, }, @@ -932,12 +932,12 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &dax.UpdateClusterInput{ - ClusterName: pointer.String(testClusterName), - Description: pointer.String(testDescription), - NotificationTopicArn: pointer.String(testTopicARN), - ParameterGroupName: pointer.String(testParameterGroupName), - PreferredMaintenanceWindow: pointer.String(testPreferredMaintenanceWindow), - SecurityGroupIds: []*string{pointer.String(testSecurityGroupIdentifier)}, + ClusterName: pointer.ToOrNilIfZeroValue(testClusterName), + Description: pointer.ToOrNilIfZeroValue(testDescription), + NotificationTopicArn: pointer.ToOrNilIfZeroValue(testTopicARN), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(testPreferredMaintenanceWindow), + SecurityGroupIds: []*string{pointer.ToOrNilIfZeroValue(testSecurityGroupIdentifier)}, }, }, }, @@ -949,7 +949,7 @@ func TestUpdate(t *testing.T) { dax: &fake.MockDaxClient{ MockUpdateClusterWithContext: func(c context.Context, uci *dax.UpdateClusterInput, o []request.Option) (*dax.UpdateClusterOutput, error) { return &dax.UpdateClusterOutput{Cluster: &dax.Cluster{ - ClusterName: pointer.String(testClusterName), + ClusterName: pointer.ToOrNilIfZeroValue(testClusterName), }}, nil }, }, @@ -969,8 +969,8 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &dax.UpdateClusterInput{ - ClusterName: pointer.String(testClusterName), - SecurityGroupIds: []*string{pointer.String(testOtherSecurityGroupIdentifier)}, + ClusterName: pointer.ToOrNilIfZeroValue(testClusterName), + SecurityGroupIds: []*string{pointer.ToOrNilIfZeroValue(testOtherSecurityGroupIdentifier)}, }, }, }, @@ -999,7 +999,7 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &dax.UpdateClusterInput{ - ClusterName: pointer.String(testClusterName), + ClusterName: pointer.ToOrNilIfZeroValue(testClusterName), }, }, }, @@ -1067,22 +1067,22 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &dax.CreateClusterInput{ - AvailabilityZones: []*string{pointer.String(testAvailabilityZone), pointer.String(testOtherAvailabilityZone)}, - ClusterEndpointEncryptionType: pointer.String(testClusterEndpointEncryptionType), - ClusterName: pointer.String(testClusterName), - Description: pointer.String(testDescription), - IamRoleArn: pointer.String(testIamRoleARN), - NodeType: pointer.String(testNodeType), - NotificationTopicArn: pointer.String(testTopicARN), - ParameterGroupName: pointer.String(testParameterGroupName), - PreferredMaintenanceWindow: pointer.String(testPreferredMaintenanceWindow), - ReplicationFactor: pointer.Int64(testReplicationFactor), - SSESpecification: &dax.SSESpecification{Enabled: pointer.Bool(testSSESpecificationEnabled)}, - SecurityGroupIds: []*string{pointer.String(testSecurityGroupIdentifier)}, - SubnetGroupName: pointer.String(testSubnetGroupName), + AvailabilityZones: []*string{pointer.ToOrNilIfZeroValue(testAvailabilityZone), pointer.ToOrNilIfZeroValue(testOtherAvailabilityZone)}, + ClusterEndpointEncryptionType: pointer.ToOrNilIfZeroValue(testClusterEndpointEncryptionType), + ClusterName: pointer.ToOrNilIfZeroValue(testClusterName), + Description: pointer.ToOrNilIfZeroValue(testDescription), + IamRoleArn: pointer.ToOrNilIfZeroValue(testIamRoleARN), + NodeType: pointer.ToOrNilIfZeroValue(testNodeType), + NotificationTopicArn: pointer.ToOrNilIfZeroValue(testTopicARN), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(testPreferredMaintenanceWindow), + ReplicationFactor: pointer.ToIntAsInt64(testReplicationFactor), + SSESpecification: &dax.SSESpecification{Enabled: pointer.ToOrNilIfZeroValue(testSSESpecificationEnabled)}, + SecurityGroupIds: []*string{pointer.ToOrNilIfZeroValue(testSecurityGroupIdentifier)}, + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), Tags: []*dax.Tag{{ - Key: pointer.String(testTagKey), - Value: pointer.String(testTagValue), + Key: pointer.ToOrNilIfZeroValue(testTagKey), + Value: pointer.ToOrNilIfZeroValue(testTagValue), }}, }, }, @@ -1116,22 +1116,22 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &dax.CreateClusterInput{ - AvailabilityZones: []*string{pointer.String(testAvailabilityZone), pointer.String(testOtherAvailabilityZone)}, - ClusterEndpointEncryptionType: pointer.String(testClusterEndpointEncryptionType), - ClusterName: pointer.String(testClusterName), - Description: pointer.String(testDescription), - IamRoleArn: pointer.String(testIamRoleARN), - NodeType: pointer.String(testNodeType), - NotificationTopicArn: pointer.String(testTopicARN), - ParameterGroupName: pointer.String(testParameterGroupName), - PreferredMaintenanceWindow: pointer.String(testPreferredMaintenanceWindow), - ReplicationFactor: pointer.Int64(testReplicationFactor), - SSESpecification: &dax.SSESpecification{Enabled: pointer.Bool(testSSESpecificationEnabled)}, - SecurityGroupIds: []*string{pointer.String(testSecurityGroupIdentifier)}, - SubnetGroupName: pointer.String(testSubnetGroupName), + AvailabilityZones: []*string{pointer.ToOrNilIfZeroValue(testAvailabilityZone), pointer.ToOrNilIfZeroValue(testOtherAvailabilityZone)}, + ClusterEndpointEncryptionType: pointer.ToOrNilIfZeroValue(testClusterEndpointEncryptionType), + ClusterName: pointer.ToOrNilIfZeroValue(testClusterName), + Description: pointer.ToOrNilIfZeroValue(testDescription), + IamRoleArn: pointer.ToOrNilIfZeroValue(testIamRoleARN), + NodeType: pointer.ToOrNilIfZeroValue(testNodeType), + NotificationTopicArn: pointer.ToOrNilIfZeroValue(testTopicARN), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(testPreferredMaintenanceWindow), + ReplicationFactor: pointer.ToIntAsInt64(testReplicationFactor), + SSESpecification: &dax.SSESpecification{Enabled: pointer.ToOrNilIfZeroValue(testSSESpecificationEnabled)}, + SecurityGroupIds: []*string{pointer.ToOrNilIfZeroValue(testSecurityGroupIdentifier)}, + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), Tags: []*dax.Tag{{ - Key: pointer.String(testTagKey), - Value: pointer.String(testTagValue), + Key: pointer.ToOrNilIfZeroValue(testTagKey), + Value: pointer.ToOrNilIfZeroValue(testTagValue), }}, }, }, @@ -1195,7 +1195,7 @@ func TestDelete(t *testing.T) { { Ctx: context.Background(), I: &dax.DeleteClusterInput{ - ClusterName: pointer.String(testClusterName), + ClusterName: pointer.ToOrNilIfZeroValue(testClusterName), }, }, }, @@ -1224,7 +1224,7 @@ func TestDelete(t *testing.T) { { Ctx: context.Background(), I: &dax.DeleteClusterInput{ - ClusterName: pointer.String(testClusterName), + ClusterName: pointer.ToOrNilIfZeroValue(testClusterName), }, }, }, diff --git a/pkg/controller/dax/parametergroup/setup.go b/pkg/controller/dax/parametergroup/setup.go index 56d0f26d0d..7b41e4eb05 100644 --- a/pkg/controller/dax/parametergroup/setup.go +++ b/pkg/controller/dax/parametergroup/setup.go @@ -66,7 +66,7 @@ type custom struct { } func preObserve(_ context.Context, cr *svcapitypes.ParameterGroup, obj *svcsdk.DescribeParameterGroupsInput) error { - obj.ParameterGroupNames = append(obj.ParameterGroupNames, pointer.String(meta.GetExternalName(cr))) + obj.ParameterGroupNames = append(obj.ParameterGroupNames, pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))) return nil } @@ -80,12 +80,12 @@ func postObserve(_ context.Context, cr *svcapitypes.ParameterGroup, _ *svcsdk.De func preCreate(_ context.Context, cr *svcapitypes.ParameterGroup, obj *svcsdk.CreateParameterGroupInput) error { meta.SetExternalName(cr, cr.Name) - obj.ParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.ParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } func preUpdate(_ context.Context, cr *svcapitypes.ParameterGroup, obj *svcsdk.UpdateParameterGroupInput) error { - obj.ParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.ParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.ParameterNameValues = make([]*svcsdk.ParameterNameValue, len(cr.Spec.ForProvider.ParameterNameValues)) for i, v := range cr.Spec.ForProvider.ParameterNameValues { @@ -107,7 +107,7 @@ func postUpdate(_ context.Context, cr *svcapitypes.ParameterGroup, _ *svcsdk.Upd } func preDelete(_ context.Context, cr *svcapitypes.ParameterGroup, obj *svcsdk.DeleteParameterGroupInput) (bool, error) { - obj.ParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.ParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } @@ -120,8 +120,8 @@ func (c *custom) isUpToDate(ctx context.Context, cr *svcapitypes.ParameterGroup, } input := &svcsdk.DescribeParametersInput{ - ParameterGroupName: pointer.String(meta.GetExternalName(cr)), - MaxResults: pointer.Int64(100), + ParameterGroupName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), + MaxResults: pointer.ToIntAsInt64(100), } results, err := c.client.DescribeParametersWithContext(ctx, input) diff --git a/pkg/controller/dax/parametergroup/setup_test.go b/pkg/controller/dax/parametergroup/setup_test.go index 8dcdf8b666..279635ef8d 100644 --- a/pkg/controller/dax/parametergroup/setup_test.go +++ b/pkg/controller/dax/parametergroup/setup_test.go @@ -91,21 +91,21 @@ func withName(value string) daxModifier { func withStatusParameterGroupName(value string) daxModifier { return func(o *svcapitypes.ParameterGroup) { - o.Status.AtProvider.ParameterGroupName = pointer.String(value) + o.Status.AtProvider.ParameterGroupName = pointer.ToOrNilIfZeroValue(value) } } func withDescription(value string) daxModifier { return func(o *svcapitypes.ParameterGroup) { - o.Spec.ForProvider.Description = pointer.String(value) + o.Spec.ForProvider.Description = pointer.ToOrNilIfZeroValue(value) } } func withParameters(k, v string) daxModifier { return func(o *svcapitypes.ParameterGroup) { o.Spec.ForProvider.ParameterNameValues = append(o.Spec.ForProvider.ParameterNameValues, &svcapitypes.ParameterNameValue{ - ParameterName: pointer.String(k), - ParameterValue: pointer.String(v), + ParameterName: pointer.ToOrNilIfZeroValue(k), + ParameterValue: pointer.ToOrNilIfZeroValue(v), }) } } @@ -134,16 +134,16 @@ func TestObserve(t *testing.T) { MockDescribeParameterGroupsWithContext: func(c context.Context, dpgi *dax.DescribeParameterGroupsInput, o []request.Option) (*dax.DescribeParameterGroupsOutput, error) { return &dax.DescribeParameterGroupsOutput{ParameterGroups: []*dax.ParameterGroup{ { - ParameterGroupName: pointer.String(testParameterGroupName), - Description: pointer.String(testDescription), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), + Description: pointer.ToOrNilIfZeroValue(testDescription), }, }}, nil }, MockDescribeParametersWithContext: func(ctx context.Context, input *dax.DescribeParametersInput, o []request.Option) (*dax.DescribeParametersOutput, error) { return &dax.DescribeParametersOutput{ Parameters: []*dax.Parameter{{ - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }}, }, nil }, @@ -180,8 +180,8 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &dax.DescribeParametersInput{ - MaxResults: pointer.Int64(100), - ParameterGroupName: pointer.String(testParameterGroupName), + MaxResults: pointer.ToIntAsInt64(100), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), }, }, }, @@ -194,16 +194,16 @@ func TestObserve(t *testing.T) { MockDescribeParameterGroupsWithContext: func(c context.Context, dpgi *dax.DescribeParameterGroupsInput, o []request.Option) (*dax.DescribeParameterGroupsOutput, error) { return &dax.DescribeParameterGroupsOutput{ParameterGroups: []*dax.ParameterGroup{ { - ParameterGroupName: pointer.String(testParameterGroupName), - Description: pointer.String(testDescription), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), + Description: pointer.ToOrNilIfZeroValue(testDescription), }, }}, nil }, MockDescribeParametersWithContext: func(ctx context.Context, input *dax.DescribeParametersInput, o []request.Option) (*dax.DescribeParametersOutput, error) { return &dax.DescribeParametersOutput{ Parameters: []*dax.Parameter{{ - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }}, }, nil }, @@ -240,8 +240,8 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &dax.DescribeParametersInput{ - MaxResults: pointer.Int64(100), - ParameterGroupName: pointer.String(testParameterGroupName), + MaxResults: pointer.ToIntAsInt64(100), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), }, }, }, @@ -254,8 +254,8 @@ func TestObserve(t *testing.T) { MockDescribeParameterGroupsWithContext: func(c context.Context, dpgi *dax.DescribeParameterGroupsInput, o []request.Option) (*dax.DescribeParameterGroupsOutput, error) { return &dax.DescribeParameterGroupsOutput{ParameterGroups: []*dax.ParameterGroup{ { - ParameterGroupName: pointer.String(testParameterGroupName), - Description: pointer.String(testDescription), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), + Description: pointer.ToOrNilIfZeroValue(testDescription), }, }}, nil }, @@ -364,8 +364,8 @@ func TestUpdate(t *testing.T) { MockUpdateParameterGroupWithContext: func(c context.Context, upgi *dax.UpdateParameterGroupInput, o []request.Option) (*dax.UpdateParameterGroupOutput, error) { return &dax.UpdateParameterGroupOutput{ ParameterGroup: &dax.ParameterGroup{ - ParameterGroupName: pointer.String(testParameterGroupName), - Description: pointer.String(testDescription), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), + Description: pointer.ToOrNilIfZeroValue(testDescription), }, }, nil }, @@ -390,11 +390,11 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &dax.UpdateParameterGroupInput{ - ParameterGroupName: pointer.String(testParameterGroupName), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), ParameterNameValues: []*dax.ParameterNameValue{ { - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }, }, }, @@ -409,8 +409,8 @@ func TestUpdate(t *testing.T) { MockUpdateParameterGroupWithContext: func(c context.Context, upgi *dax.UpdateParameterGroupInput, o []request.Option) (*dax.UpdateParameterGroupOutput, error) { return &dax.UpdateParameterGroupOutput{ ParameterGroup: &dax.ParameterGroup{ - Description: pointer.String(testDescription), - ParameterGroupName: pointer.String(testParameterGroupName), + Description: pointer.ToOrNilIfZeroValue(testDescription), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), }, }, nil }, @@ -437,15 +437,15 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &dax.UpdateParameterGroupInput{ - ParameterGroupName: pointer.String(testParameterGroupName), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), ParameterNameValues: []*dax.ParameterNameValue{ { - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }, { - ParameterName: pointer.String(testOtherParameterName), - ParameterValue: pointer.String(testOtherParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testOtherParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testOtherParameterValue), }, }, }, @@ -480,11 +480,11 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &dax.UpdateParameterGroupInput{ - ParameterGroupName: pointer.String(testParameterGroupName), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), ParameterNameValues: []*dax.ParameterNameValue{ { - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }, }, }, @@ -534,7 +534,7 @@ func TestCreate(t *testing.T) { MockCreateParameterGroupWithContext: func(c context.Context, cpgi *dax.CreateParameterGroupInput, o []request.Option) (*dax.CreateParameterGroupOutput, error) { return &dax.CreateParameterGroupOutput{ ParameterGroup: &dax.ParameterGroup{ - ParameterGroupName: pointer.String(testParameterGroupName), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), }, }, nil }, @@ -557,7 +557,7 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &dax.CreateParameterGroupInput{ - ParameterGroupName: pointer.String(testParameterGroupName), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), }, }, }, @@ -570,7 +570,7 @@ func TestCreate(t *testing.T) { MockCreateParameterGroupWithContext: func(c context.Context, cpgi *dax.CreateParameterGroupInput, o []request.Option) (*dax.CreateParameterGroupOutput, error) { return &dax.CreateParameterGroupOutput{ ParameterGroup: &dax.ParameterGroup{ - ParameterGroupName: pointer.String(testParameterGroupName), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), }, }, nil }, @@ -596,7 +596,7 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &dax.CreateParameterGroupInput{ - ParameterGroupName: pointer.String(testParameterGroupName), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), }, }, }, @@ -627,7 +627,7 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &dax.CreateParameterGroupInput{ - ParameterGroupName: pointer.String(testParameterGroupName), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), }, }, }, @@ -660,7 +660,7 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &dax.CreateParameterGroupInput{ - ParameterGroupName: pointer.String(testParameterGroupName), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), }, }, }, @@ -723,7 +723,7 @@ func TestDelete(t *testing.T) { { Ctx: context.Background(), I: &dax.DeleteParameterGroupInput{ - ParameterGroupName: pointer.String(testParameterGroupName), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), }, }, }, @@ -752,7 +752,7 @@ func TestDelete(t *testing.T) { { Ctx: context.Background(), I: &dax.DeleteParameterGroupInput{ - ParameterGroupName: pointer.String(testParameterGroupName), + ParameterGroupName: pointer.ToOrNilIfZeroValue(testParameterGroupName), }, }, }, diff --git a/pkg/controller/dax/subnetgroup/setup.go b/pkg/controller/dax/subnetgroup/setup.go index 46af805472..0b8123074d 100644 --- a/pkg/controller/dax/subnetgroup/setup.go +++ b/pkg/controller/dax/subnetgroup/setup.go @@ -57,7 +57,7 @@ func SetupSubnetGroup(mgr ctrl.Manager, o controller.Options) error { } func preObserve(_ context.Context, cr *svcapitypes.SubnetGroup, obj *svcsdk.DescribeSubnetGroupsInput) error { - obj.SubnetGroupNames = append(obj.SubnetGroupNames, pointer.String(meta.GetExternalName(cr))) + obj.SubnetGroupNames = append(obj.SubnetGroupNames, pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))) return nil } @@ -71,23 +71,23 @@ func postObserve(_ context.Context, cr *svcapitypes.SubnetGroup, _ *svcsdk.Descr func preCreate(_ context.Context, cr *svcapitypes.SubnetGroup, obj *svcsdk.CreateSubnetGroupInput) error { meta.SetExternalName(cr, cr.Name) - obj.SubnetGroupName = pointer.String(meta.GetExternalName(cr)) + obj.SubnetGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) for _, s := range cr.Spec.ForProvider.SubnetIds { - obj.SubnetIds = append(obj.SubnetIds, pointer.String(*s)) + obj.SubnetIds = append(obj.SubnetIds, pointer.ToOrNilIfZeroValue(*s)) } return nil } func preUpdate(_ context.Context, cr *svcapitypes.SubnetGroup, obj *svcsdk.UpdateSubnetGroupInput) error { - obj.SubnetGroupName = pointer.String(meta.GetExternalName(cr)) + obj.SubnetGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) for _, s := range cr.Spec.ForProvider.SubnetIds { - obj.SubnetIds = append(obj.SubnetIds, pointer.String(*s)) + obj.SubnetIds = append(obj.SubnetIds, pointer.ToOrNilIfZeroValue(*s)) } return nil } func preDelete(_ context.Context, cr *svcapitypes.SubnetGroup, obj *svcsdk.DeleteSubnetGroupInput) (bool, error) { - obj.SubnetGroupName = pointer.String(meta.GetExternalName(cr)) + obj.SubnetGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } diff --git a/pkg/controller/dax/subnetgroup/setup_test.go b/pkg/controller/dax/subnetgroup/setup_test.go index 34e1151f7d..d17d6f5bc5 100644 --- a/pkg/controller/dax/subnetgroup/setup_test.go +++ b/pkg/controller/dax/subnetgroup/setup_test.go @@ -91,27 +91,27 @@ func withName(value string) daxModifier { func withDescription(value string) daxModifier { return func(o *svcapitypes.SubnetGroup) { - o.Spec.ForProvider.Description = pointer.String(value) + o.Spec.ForProvider.Description = pointer.ToOrNilIfZeroValue(value) } } func withSubnetID(value string) daxModifier { return func(o *svcapitypes.SubnetGroup) { - o.Spec.ForProvider.SubnetIds = append(o.Spec.ForProvider.SubnetIds, pointer.String(value)) + o.Spec.ForProvider.SubnetIds = append(o.Spec.ForProvider.SubnetIds, pointer.ToOrNilIfZeroValue(value)) } } func withStatusSubnetGroupName(value string) daxModifier { return func(o *svcapitypes.SubnetGroup) { - o.Status.AtProvider.SubnetGroupName = pointer.String(value) + o.Status.AtProvider.SubnetGroupName = pointer.ToOrNilIfZeroValue(value) } } func withStatusSubnets(k, v string) daxModifier { return func(o *svcapitypes.SubnetGroup) { o.Status.AtProvider.Subnets = append(o.Status.AtProvider.Subnets, &svcapitypes.Subnet{ - SubnetIdentifier: pointer.String(k), - SubnetAvailabilityZone: pointer.String(v), + SubnetIdentifier: pointer.ToOrNilIfZeroValue(k), + SubnetAvailabilityZone: pointer.ToOrNilIfZeroValue(v), }) } } @@ -140,11 +140,11 @@ func TestObserve(t *testing.T) { MockDescribeSubnetGroupsWithContext: func(c context.Context, dsgi *dax.DescribeSubnetGroupsInput, o []request.Option) (*dax.DescribeSubnetGroupsOutput, error) { return &dax.DescribeSubnetGroupsOutput{SubnetGroups: []*dax.SubnetGroup{ { - SubnetGroupName: pointer.String(testSubnetGroupName), - Description: pointer.String(testDescription), + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), + Description: pointer.ToOrNilIfZeroValue(testDescription), Subnets: []*dax.Subnet{{ - SubnetIdentifier: pointer.String(testSubnetIdentifier), - SubnetAvailabilityZone: pointer.String(testSubnetAvailabilityZone)}}, + SubnetIdentifier: pointer.ToOrNilIfZeroValue(testSubnetIdentifier), + SubnetAvailabilityZone: pointer.ToOrNilIfZeroValue(testSubnetAvailabilityZone)}}, }, }}, nil }, @@ -187,11 +187,11 @@ func TestObserve(t *testing.T) { MockDescribeSubnetGroupsWithContext: func(c context.Context, dsgi *dax.DescribeSubnetGroupsInput, o []request.Option) (*dax.DescribeSubnetGroupsOutput, error) { return &dax.DescribeSubnetGroupsOutput{SubnetGroups: []*dax.SubnetGroup{ { - SubnetGroupName: pointer.String(testSubnetGroupName), - Description: pointer.String(testDescription), + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), + Description: pointer.ToOrNilIfZeroValue(testDescription), Subnets: []*dax.Subnet{{ - SubnetIdentifier: pointer.String(testSubnetIdentifier), - SubnetAvailabilityZone: pointer.String(testSubnetAvailabilityZone)}}, + SubnetIdentifier: pointer.ToOrNilIfZeroValue(testSubnetIdentifier), + SubnetAvailabilityZone: pointer.ToOrNilIfZeroValue(testSubnetAvailabilityZone)}}, }, }}, nil }, @@ -234,11 +234,11 @@ func TestObserve(t *testing.T) { MockDescribeSubnetGroupsWithContext: func(c context.Context, dsgi *dax.DescribeSubnetGroupsInput, o []request.Option) (*dax.DescribeSubnetGroupsOutput, error) { return &dax.DescribeSubnetGroupsOutput{SubnetGroups: []*dax.SubnetGroup{ { - SubnetGroupName: pointer.String(testSubnetGroupName), - Description: pointer.String(testDescription), + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), + Description: pointer.ToOrNilIfZeroValue(testDescription), Subnets: []*dax.Subnet{{ - SubnetIdentifier: pointer.String(testSubnetIdentifier), - SubnetAvailabilityZone: pointer.String(testSubnetAvailabilityZone)}}, + SubnetIdentifier: pointer.ToOrNilIfZeroValue(testSubnetIdentifier), + SubnetAvailabilityZone: pointer.ToOrNilIfZeroValue(testSubnetAvailabilityZone)}}, }, }}, nil }, @@ -350,8 +350,8 @@ func TestUpdate(t *testing.T) { MockUpdateSubnetGroupWithContext: func(c context.Context, usgi *dax.UpdateSubnetGroupInput, o []request.Option) (*dax.UpdateSubnetGroupOutput, error) { return &dax.UpdateSubnetGroupOutput{ SubnetGroup: &dax.SubnetGroup{ - SubnetGroupName: pointer.String(testSubnetGroupName), - Subnets: []*dax.Subnet{{SubnetIdentifier: pointer.String(testSubnetIdentifier)}}, + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), + Subnets: []*dax.Subnet{{SubnetIdentifier: pointer.ToOrNilIfZeroValue(testSubnetIdentifier)}}, }, }, nil }, @@ -372,8 +372,8 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &dax.UpdateSubnetGroupInput{ - SubnetGroupName: pointer.String(testSubnetGroupName), - SubnetIds: []*string{pointer.String(testSubnetIdentifier)}, + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), + SubnetIds: []*string{pointer.ToOrNilIfZeroValue(testSubnetIdentifier)}, }, }, }, @@ -386,16 +386,16 @@ func TestUpdate(t *testing.T) { MockUpdateSubnetGroupWithContext: func(c context.Context, usgi *dax.UpdateSubnetGroupInput, o []request.Option) (*dax.UpdateSubnetGroupOutput, error) { return &dax.UpdateSubnetGroupOutput{ SubnetGroup: &dax.SubnetGroup{ - SubnetGroupName: pointer.String(testSubnetGroupName), - Description: pointer.String(testDescription), + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), + Description: pointer.ToOrNilIfZeroValue(testDescription), Subnets: []*dax.Subnet{ { - SubnetIdentifier: pointer.String(testSubnetIdentifier), - SubnetAvailabilityZone: pointer.String(testSubnetAvailabilityZone), + SubnetIdentifier: pointer.ToOrNilIfZeroValue(testSubnetIdentifier), + SubnetAvailabilityZone: pointer.ToOrNilIfZeroValue(testSubnetAvailabilityZone), }, { - SubnetIdentifier: pointer.String(testOtherSubnetIdentifier), - SubnetAvailabilityZone: pointer.String(testOtherSubnetAvailabilityZone), + SubnetIdentifier: pointer.ToOrNilIfZeroValue(testOtherSubnetIdentifier), + SubnetAvailabilityZone: pointer.ToOrNilIfZeroValue(testOtherSubnetAvailabilityZone), }, }, }, @@ -422,11 +422,11 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &dax.UpdateSubnetGroupInput{ - SubnetGroupName: pointer.String(testSubnetGroupName), - Description: pointer.String(testDescription), + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), + Description: pointer.ToOrNilIfZeroValue(testDescription), SubnetIds: []*string{ - pointer.String(testSubnetIdentifier), - pointer.String(testOtherSubnetIdentifier), + pointer.ToOrNilIfZeroValue(testSubnetIdentifier), + pointer.ToOrNilIfZeroValue(testOtherSubnetIdentifier), }, }, }, @@ -458,7 +458,7 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &dax.UpdateSubnetGroupInput{ - SubnetGroupName: pointer.String(testSubnetGroupName), + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), }, }, }, @@ -506,7 +506,7 @@ func TestCreate(t *testing.T) { MockCreateSubnetGroupWithContext: func(c context.Context, csgi *dax.CreateSubnetGroupInput, o []request.Option) (*dax.CreateSubnetGroupOutput, error) { return &dax.CreateSubnetGroupOutput{ SubnetGroup: &dax.SubnetGroup{ - SubnetGroupName: pointer.String(testSubnetGroupName), + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), }, }, nil }, @@ -529,7 +529,7 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &dax.CreateSubnetGroupInput{ - SubnetGroupName: pointer.String(testSubnetGroupName), + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), }, }, }, @@ -542,15 +542,15 @@ func TestCreate(t *testing.T) { MockCreateSubnetGroupWithContext: func(c context.Context, csgi *dax.CreateSubnetGroupInput, o []request.Option) (*dax.CreateSubnetGroupOutput, error) { return &dax.CreateSubnetGroupOutput{ SubnetGroup: &dax.SubnetGroup{ - SubnetGroupName: pointer.String(testSubnetGroupName), + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), Subnets: []*dax.Subnet{ { - SubnetIdentifier: pointer.String(testSubnetIdentifier), - SubnetAvailabilityZone: pointer.String(testSubnetAvailabilityZone), + SubnetIdentifier: pointer.ToOrNilIfZeroValue(testSubnetIdentifier), + SubnetAvailabilityZone: pointer.ToOrNilIfZeroValue(testSubnetAvailabilityZone), }, { - SubnetIdentifier: pointer.String(testOtherSubnetIdentifier), - SubnetAvailabilityZone: pointer.String(testOtherSubnetAvailabilityZone), + SubnetIdentifier: pointer.ToOrNilIfZeroValue(testOtherSubnetIdentifier), + SubnetAvailabilityZone: pointer.ToOrNilIfZeroValue(testOtherSubnetAvailabilityZone), }, }, }, @@ -580,8 +580,8 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &dax.CreateSubnetGroupInput{ - SubnetGroupName: pointer.String(testSubnetGroupName), - SubnetIds: []*string{pointer.String(testSubnetIdentifier), pointer.String(testOtherSubnetIdentifier)}, + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), + SubnetIds: []*string{pointer.ToOrNilIfZeroValue(testSubnetIdentifier), pointer.ToOrNilIfZeroValue(testOtherSubnetIdentifier)}, }, }, }, @@ -612,7 +612,7 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &dax.CreateSubnetGroupInput{ - SubnetGroupName: pointer.String(testSubnetGroupName), + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), }, }, }, @@ -647,8 +647,8 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &dax.CreateSubnetGroupInput{ - SubnetGroupName: pointer.String(testSubnetGroupName), - SubnetIds: []*string{pointer.String(testSubnetIdentifier), pointer.String(testOtherSubnetIdentifier)}, + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), + SubnetIds: []*string{pointer.ToOrNilIfZeroValue(testSubnetIdentifier), pointer.ToOrNilIfZeroValue(testOtherSubnetIdentifier)}, }, }, }, @@ -711,7 +711,7 @@ func TestDelete(t *testing.T) { { Ctx: context.Background(), I: &dax.DeleteSubnetGroupInput{ - SubnetGroupName: pointer.String(testSubnetGroupName), + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), }, }, }, @@ -740,7 +740,7 @@ func TestDelete(t *testing.T) { { Ctx: context.Background(), I: &dax.DeleteSubnetGroupInput{ - SubnetGroupName: pointer.String(testSubnetGroupName), + SubnetGroupName: pointer.ToOrNilIfZeroValue(testSubnetGroupName), }, }, }, diff --git a/pkg/controller/doc.go b/pkg/controller/doc.go deleted file mode 100644 index 65178afe0d..0000000000 --- a/pkg/controller/doc.go +++ /dev/null @@ -1,17 +0,0 @@ -/* -Copyright 2019 The Crossplane Authors. - -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 controller diff --git a/pkg/controller/docdb/dbcluster/setup.go b/pkg/controller/docdb/dbcluster/setup.go index 363ba50fb4..87c928628f 100644 --- a/pkg/controller/docdb/dbcluster/setup.go +++ b/pkg/controller/docdb/dbcluster/setup.go @@ -110,7 +110,7 @@ type hooks struct { } func preObserve(_ context.Context, cr *svcapitypes.DBCluster, obj *svcsdk.DescribeDBClustersInput) error { - obj.DBClusterIdentifier = pointer.String(meta.GetExternalName(cr)) + obj.DBClusterIdentifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -147,16 +147,16 @@ func lateInitialize(cr *svcapitypes.DBClusterParameters, resp *svcsdk.DescribeDB cr.AvailabilityZones = cluster.AvailabilityZones } - cr.BackupRetentionPeriod = pointer.LateInitializeInt64Ptr(cr.BackupRetentionPeriod, cluster.BackupRetentionPeriod) - cr.DBClusterParameterGroupName = pointer.LateInitializeStringPtr(cr.DBClusterParameterGroupName, cluster.DBClusterParameterGroup) - cr.DBSubnetGroupName = pointer.LateInitializeStringPtr(cr.DBSubnetGroupName, cluster.DBSubnetGroup) - cr.DeletionProtection = pointer.LateInitializeBoolPtr(cr.DeletionProtection, cluster.DeletionProtection) - cr.EngineVersion = pointer.LateInitializeStringPtr(cr.EngineVersion, cluster.EngineVersion) - cr.KMSKeyID = pointer.LateInitializeStringPtr(cr.KMSKeyID, cluster.KmsKeyId) - cr.Port = pointer.LateInitializeInt64Ptr(cr.Port, cluster.Port) - cr.PreferredBackupWindow = pointer.LateInitializeStringPtr(cr.PreferredBackupWindow, cluster.PreferredBackupWindow) - cr.PreferredMaintenanceWindow = pointer.LateInitializeStringPtr(cr.PreferredMaintenanceWindow, cluster.PreferredMaintenanceWindow) - cr.StorageEncrypted = pointer.LateInitializeBoolPtr(cr.StorageEncrypted, cluster.StorageEncrypted) + cr.BackupRetentionPeriod = pointer.LateInitialize(cr.BackupRetentionPeriod, cluster.BackupRetentionPeriod) + cr.DBClusterParameterGroupName = pointer.LateInitialize(cr.DBClusterParameterGroupName, cluster.DBClusterParameterGroup) + cr.DBSubnetGroupName = pointer.LateInitialize(cr.DBSubnetGroupName, cluster.DBSubnetGroup) + cr.DeletionProtection = pointer.LateInitialize(cr.DeletionProtection, cluster.DeletionProtection) + cr.EngineVersion = pointer.LateInitialize(cr.EngineVersion, cluster.EngineVersion) + cr.KMSKeyID = pointer.LateInitialize(cr.KMSKeyID, cluster.KmsKeyId) + cr.Port = pointer.LateInitialize(cr.Port, cluster.Port) + cr.PreferredBackupWindow = pointer.LateInitialize(cr.PreferredBackupWindow, cluster.PreferredBackupWindow) + cr.PreferredMaintenanceWindow = pointer.LateInitialize(cr.PreferredMaintenanceWindow, cluster.PreferredMaintenanceWindow) + cr.StorageEncrypted = pointer.LateInitialize(cr.StorageEncrypted, cluster.StorageEncrypted) if cr.EnableCloudwatchLogsExports == nil { cr.EnableCloudwatchLogsExports = cluster.EnabledCloudwatchLogsExports @@ -199,7 +199,7 @@ func (e *hooks) isUpToDate(ctx context.Context, cr *svcapitypes.DBCluster, resp } func (e *hooks) preUpdate(ctx context.Context, cr *svcapitypes.DBCluster, obj *svcsdk.ModifyDBClusterInput) error { - obj.DBClusterIdentifier = pointer.String(meta.GetExternalName(cr)) + obj.DBClusterIdentifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.CloudwatchLogsExportConfiguration = generateCloudWatchExportConfiguration( cr.Spec.ForProvider.EnableCloudwatchLogsExports, cr.Status.AtProvider.EnabledCloudwatchLogsExports) @@ -224,7 +224,7 @@ func (e *hooks) postUpdate(_ context.Context, cr *svcapitypes.DBCluster, resp *s } func (e *hooks) preCreate(ctx context.Context, cr *svcapitypes.DBCluster, obj *svcsdk.CreateDBClusterInput) error { //nolint:gocyclo - obj.DBClusterIdentifier = pointer.String(meta.GetExternalName(cr)) + obj.DBClusterIdentifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) pw, _, err := e.getPasswordFromRef(ctx, cr.Spec.ForProvider.MasterUserPasswordSecretRef, cr.Spec.WriteConnectionSecretToReference) if resource.IgnoreNotFound(err) != nil { @@ -240,7 +240,7 @@ func (e *hooks) preCreate(ctx context.Context, cr *svcapitypes.DBCluster, obj *s } } - obj.MasterUserPassword = pointer.String(pw) + obj.MasterUserPassword = pointer.ToOrNilIfZeroValue(pw) if cr.Spec.ForProvider.RestoreFrom != nil { switch cr.Spec.ForProvider.RestoreFrom.Source { case svcapitypes.RestoreSourceSnapshot: @@ -369,7 +369,7 @@ func generateRestoreDBClusterToPointInTimeInput(cr *svcapitypes.DBCluster) *svcs } func preDelete(_ context.Context, cr *svcapitypes.DBCluster, obj *svcsdk.DeleteDBClusterInput) (bool, error) { - obj.DBClusterIdentifier = pointer.String(meta.GetExternalName(cr)) + obj.DBClusterIdentifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.FinalDBSnapshotIdentifier = cr.Spec.ForProvider.FinalDBSnapshotIdentifier obj.SkipFinalSnapshot = cr.Spec.ForProvider.SkipFinalSnapshot return false, nil diff --git a/pkg/controller/docdb/dbcluster/setup_test.go b/pkg/controller/docdb/dbcluster/setup_test.go index 2288ff4c3d..d3f0ff9ece 100644 --- a/pkg/controller/docdb/dbcluster/setup_test.go +++ b/pkg/controller/docdb/dbcluster/setup_test.go @@ -104,7 +104,7 @@ type docDBModifier func(*svcapitypes.DBCluster) func toStringPtrArray(values ...string) []*string { ptrArr := make([]*string, len(values)) for i, s := range values { - ptrArr[i] = pointer.String(s) + ptrArr[i] = pointer.ToOrNilIfZeroValue(s) } return ptrArr } @@ -132,7 +132,7 @@ func withDeletionTimestamp(v *metav1.Time) docDBModifier { func withDBClusterIdentifier(value string) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Status.AtProvider.DBClusterIdentifier = pointer.String(value) + o.Status.AtProvider.DBClusterIdentifier = pointer.ToOrNilIfZeroValue(value) } } @@ -144,7 +144,7 @@ func withConditions(value ...xpv1.Condition) docDBModifier { func withStatus(value string) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Status.AtProvider.Status = pointer.String(value) + o.Status.AtProvider.Status = pointer.ToOrNilIfZeroValue(value) } } @@ -156,37 +156,37 @@ func withAvailabilityZones(values ...string) docDBModifier { func withBackupRetentionPeriod(value int) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Spec.ForProvider.BackupRetentionPeriod = pointer.Int64(value) + o.Spec.ForProvider.BackupRetentionPeriod = pointer.ToIntAsInt64(value) } } func withDBClusterParameterGroupName(value string) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Spec.ForProvider.DBClusterParameterGroupName = pointer.String(value) + o.Spec.ForProvider.DBClusterParameterGroupName = pointer.ToOrNilIfZeroValue(value) } } func withStatusDBClusterParameterGroupName(value string) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Status.AtProvider.DBClusterParameterGroup = pointer.String(value) + o.Status.AtProvider.DBClusterParameterGroup = pointer.ToOrNilIfZeroValue(value) } } func withStatusDBClusterArn(value string) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Status.AtProvider.DBClusterARN = pointer.String(value) + o.Status.AtProvider.DBClusterARN = pointer.ToOrNilIfZeroValue(value) } } func withDBSubnetGroup(value string) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Spec.ForProvider.DBSubnetGroupName = pointer.String(value) + o.Spec.ForProvider.DBSubnetGroupName = pointer.ToOrNilIfZeroValue(value) } } func withDeletionProtection(value bool) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Spec.ForProvider.DeletionProtection = pointer.Bool(value, pointer.FieldRequired) + o.Spec.ForProvider.DeletionProtection = ptr.To(value) } } @@ -204,19 +204,19 @@ func withStatusEnableCloudWatchLogsExports(values ...string) docDBModifier { func withEngine(value string) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Spec.ForProvider.Engine = pointer.String(value) + o.Spec.ForProvider.Engine = pointer.ToOrNilIfZeroValue(value) } } func withEngineVersion(value string) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Spec.ForProvider.EngineVersion = pointer.String(value) + o.Spec.ForProvider.EngineVersion = pointer.ToOrNilIfZeroValue(value) } } func withMasterUserName(value string) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Spec.ForProvider.MasterUsername = pointer.String(value) + o.Spec.ForProvider.MasterUsername = pointer.ToOrNilIfZeroValue(value) } } @@ -234,49 +234,49 @@ func withMasterPasswordSecretRef(namesapce, name, key string) docDBModifier { func withKmsKeyID(value string) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Spec.ForProvider.KMSKeyID = pointer.String(value) + o.Spec.ForProvider.KMSKeyID = pointer.ToOrNilIfZeroValue(value) } } func withPort(value int) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Spec.ForProvider.Port = pointer.Int64(value) + o.Spec.ForProvider.Port = pointer.ToIntAsInt64(value) } } func withEndpoint(value string) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Status.AtProvider.Endpoint = pointer.String(value) + o.Status.AtProvider.Endpoint = pointer.ToOrNilIfZeroValue(value) } } func withReaderEndpoint(value string) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Status.AtProvider.ReaderEndpoint = pointer.String(value) + o.Status.AtProvider.ReaderEndpoint = pointer.ToOrNilIfZeroValue(value) } } func withPreSignedURL(value string) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Spec.ForProvider.PreSignedURL = pointer.String(value) + o.Spec.ForProvider.PreSignedURL = pointer.ToOrNilIfZeroValue(value) } } func withPreferredBackupWindow(value string) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Spec.ForProvider.PreferredBackupWindow = pointer.String(value) + o.Spec.ForProvider.PreferredBackupWindow = pointer.ToOrNilIfZeroValue(value) } } func withPreferredMaintenanceWindow(value string) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Spec.ForProvider.PreferredMaintenanceWindow = pointer.String(value) + o.Spec.ForProvider.PreferredMaintenanceWindow = pointer.ToOrNilIfZeroValue(value) } } func withStorageEncrypted(value bool) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Spec.ForProvider.StorageEncrypted = pointer.Bool(value) + o.Spec.ForProvider.StorageEncrypted = pointer.ToOrNilIfZeroValue(value) } } @@ -298,13 +298,13 @@ func withTags(values ...*svcapitypes.Tag) docDBModifier { func withSkipFinalSnapshot(value bool) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Spec.ForProvider.SkipFinalSnapshot = pointer.Bool(value) + o.Spec.ForProvider.SkipFinalSnapshot = pointer.ToOrNilIfZeroValue(value) } } func withFinalDBSnapshotIdentifier(value string) docDBModifier { return func(o *svcapitypes.DBCluster) { - o.Spec.ForProvider.FinalDBSnapshotIdentifier = pointer.String(value) + o.Spec.ForProvider.FinalDBSnapshotIdentifier = pointer.ToOrNilIfZeroValue(value) } } @@ -367,9 +367,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - BackupRetentionPeriod: pointer.Int64(testBackupRetentionPeriod), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + BackupRetentionPeriod: pointer.ToIntAsInt64(testBackupRetentionPeriod), }, }, }, nil @@ -401,7 +401,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -415,9 +415,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - BackupRetentionPeriod: pointer.Int64(testBackupRetentionPeriod), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + BackupRetentionPeriod: pointer.ToIntAsInt64(testBackupRetentionPeriod), }, }, }, nil @@ -454,7 +454,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -473,9 +473,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - BackupRetentionPeriod: pointer.Int64(testBackupRetentionPeriod), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + BackupRetentionPeriod: pointer.ToIntAsInt64(testBackupRetentionPeriod), }, }, }, nil @@ -511,7 +511,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -530,8 +530,8 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), }, }, }, nil @@ -566,7 +566,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -585,9 +585,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - DBClusterParameterGroup: pointer.String(testDBClusterParameterGroupName), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + DBClusterParameterGroup: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, nil @@ -620,7 +620,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -634,9 +634,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - DBClusterParameterGroup: pointer.String(testDBClusterParameterGroupName), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + DBClusterParameterGroup: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, nil @@ -674,7 +674,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -693,9 +693,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - DBClusterParameterGroup: pointer.String(testDBClusterParameterGroupName), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + DBClusterParameterGroup: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, nil @@ -732,7 +732,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -751,9 +751,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - DeletionProtection: pointer.Bool(true), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + DeletionProtection: pointer.ToOrNilIfZeroValue(true), }, }, }, nil @@ -785,7 +785,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -799,9 +799,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - DeletionProtection: pointer.Bool(true), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + DeletionProtection: pointer.ToOrNilIfZeroValue(true), }, }, }, nil @@ -838,7 +838,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -857,9 +857,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - DeletionProtection: pointer.Bool(true), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + DeletionProtection: pointer.ToOrNilIfZeroValue(true), }, }, }, nil @@ -895,7 +895,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -914,10 +914,10 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), EnabledCloudwatchLogsExports: []*string{ - pointer.String(testCloudWatchLog), + pointer.ToOrNilIfZeroValue(testCloudWatchLog), }, }, }, @@ -960,7 +960,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -974,11 +974,11 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), EnabledCloudwatchLogsExports: []*string{ - pointer.String(testCloudWatchLog), - pointer.String(testOtherCloudWatchLog), + pointer.ToOrNilIfZeroValue(testCloudWatchLog), + pointer.ToOrNilIfZeroValue(testOtherCloudWatchLog), }, }, }, @@ -1019,7 +1019,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -1033,11 +1033,11 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), EnabledCloudwatchLogsExports: []*string{ - pointer.String(testCloudWatchLog), - pointer.String(testOtherCloudWatchLog), + pointer.ToOrNilIfZeroValue(testCloudWatchLog), + pointer.ToOrNilIfZeroValue(testOtherCloudWatchLog), }, }, }, @@ -1085,7 +1085,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -1104,11 +1104,11 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), EnabledCloudwatchLogsExports: []*string{ - pointer.String(testCloudWatchLog), - pointer.String(testOtherCloudWatchLog), + pointer.ToOrNilIfZeroValue(testCloudWatchLog), + pointer.ToOrNilIfZeroValue(testOtherCloudWatchLog), }, }, }, @@ -1156,7 +1156,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -1175,11 +1175,11 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), EnabledCloudwatchLogsExports: []*string{ - pointer.String(testCloudWatchLog), - pointer.String(testOtherCloudWatchLog), + pointer.ToOrNilIfZeroValue(testCloudWatchLog), + pointer.ToOrNilIfZeroValue(testOtherCloudWatchLog), }, }, }, @@ -1223,7 +1223,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -1242,9 +1242,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - Port: pointer.Int64(testPort), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + Port: pointer.ToIntAsInt64(testPort), }, }, }, nil @@ -1276,7 +1276,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -1290,9 +1290,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - Port: pointer.Int64(testPort), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + Port: pointer.ToIntAsInt64(testPort), }, }, }, nil @@ -1329,7 +1329,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -1348,9 +1348,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - Port: pointer.Int64(testPort), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + Port: pointer.ToIntAsInt64(testPort), }, }, }, nil @@ -1386,7 +1386,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -1405,9 +1405,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - PreferredBackupWindow: pointer.String(testPreferredBackupWindow), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + PreferredBackupWindow: pointer.ToOrNilIfZeroValue(testPreferredBackupWindow), }, }, }, nil @@ -1439,7 +1439,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -1453,9 +1453,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - PreferredBackupWindow: pointer.String(testPreferredBackupWindow), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + PreferredBackupWindow: pointer.ToOrNilIfZeroValue(testPreferredBackupWindow), }, }, }, nil @@ -1492,7 +1492,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -1511,9 +1511,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - PreferredBackupWindow: pointer.String(testPreferredBackupWindow), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + PreferredBackupWindow: pointer.ToOrNilIfZeroValue(testPreferredBackupWindow), }, }, }, nil @@ -1549,7 +1549,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -1568,9 +1568,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - PreferredMaintenanceWindow: pointer.String(testPreferredMaintenanceWindow), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(testPreferredMaintenanceWindow), }, }, }, nil @@ -1602,7 +1602,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -1616,9 +1616,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - PreferredMaintenanceWindow: pointer.String(testPreferredMaintenanceWindow), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(testPreferredMaintenanceWindow), }, }, }, nil @@ -1655,7 +1655,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -1674,9 +1674,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - PreferredMaintenanceWindow: pointer.String(testPreferredMaintenanceWindow), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(testPreferredMaintenanceWindow), }, }, }, nil @@ -1712,7 +1712,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -1731,9 +1731,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClustersOutput{ DBClusters: []*docdb.DBCluster{ { - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - Status: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - PreferredMaintenanceWindow: pointer.String(testPreferredMaintenanceWindow), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + Status: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(testPreferredMaintenanceWindow), }, }, }, nil @@ -1772,7 +1772,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -1807,7 +1807,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -1841,7 +1841,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClustersInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -1903,21 +1903,21 @@ func TestCreate(t *testing.T) { &testAvailabilityZone, &testOtherAvailabilityZone, }, - BackupRetentionPeriod: pointer.Int64(testBackupRetentionPeriod), + BackupRetentionPeriod: pointer.ToIntAsInt64(testBackupRetentionPeriod), DBClusterParameterGroup: &testDBClusterParameterGroupName, - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - DBClusterArn: pointer.String(testDBClusterArn), - DeletionProtection: pointer.Bool(true), - Endpoint: pointer.String(testEndpoint), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + DBClusterArn: pointer.ToOrNilIfZeroValue(testDBClusterArn), + DeletionProtection: pointer.ToOrNilIfZeroValue(true), + Endpoint: pointer.ToOrNilIfZeroValue(testEndpoint), Engine: &testEngine, EngineVersion: &testEngineVersion, KmsKeyId: &testKMSKeyID, MasterUsername: &testMasterUserName, - ReaderEndpoint: pointer.String(testReaderEndpoint), - Port: pointer.Int64(testPort), + ReaderEndpoint: pointer.ToOrNilIfZeroValue(testReaderEndpoint), + Port: pointer.ToIntAsInt64(testPort), PreferredBackupWindow: &testPreferredBackupWindow, PreferredMaintenanceWindow: &testPreferredMaintenanceWindow, - StorageEncrypted: pointer.Bool(true), + StorageEncrypted: pointer.ToOrNilIfZeroValue(true), }, }, nil }, @@ -1947,8 +1947,8 @@ func TestCreate(t *testing.T) { withPreferredMaintenanceWindow(testPreferredMaintenanceWindow), withStorageEncrypted(true), withTags( - &svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - &svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, ), withVpcSecurityGroupIds( testVpcSecurityGroup, @@ -1985,8 +1985,8 @@ func TestCreate(t *testing.T) { withPreferredMaintenanceWindow(testPreferredMaintenanceWindow), withStorageEncrypted(true), withTags( - &svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - &svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, ), withVpcSecurityGroupIds( testVpcSecurityGroup, @@ -2011,36 +2011,36 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &docdb.CreateDBClusterInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), AvailabilityZones: toStringPtrArray( testAvailabilityZone, testOtherAvailabilityZone, ), - BackupRetentionPeriod: pointer.Int64(testBackupRetentionPeriod), - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), - DeletionProtection: pointer.Bool(true), + BackupRetentionPeriod: pointer.ToIntAsInt64(testBackupRetentionPeriod), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), + DeletionProtection: pointer.ToOrNilIfZeroValue(true), EnableCloudwatchLogsExports: toStringPtrArray( testCloudWatchLog, testOtherCloudWatchLog, ), - Engine: pointer.String(testEngine), - EngineVersion: pointer.String(testEngineVersion), - KmsKeyId: pointer.String(testKMSKeyID), - MasterUsername: pointer.String(testMasterUserName), - MasterUserPassword: pointer.String(testMasterUserPassword), - Port: pointer.Int64(testPort), - PreSignedUrl: pointer.String(testPresignedURL), - PreferredBackupWindow: pointer.String(testPreferredBackupWindow), - PreferredMaintenanceWindow: pointer.String(testPreferredMaintenanceWindow), - StorageEncrypted: pointer.Bool(true), + Engine: pointer.ToOrNilIfZeroValue(testEngine), + EngineVersion: pointer.ToOrNilIfZeroValue(testEngineVersion), + KmsKeyId: pointer.ToOrNilIfZeroValue(testKMSKeyID), + MasterUsername: pointer.ToOrNilIfZeroValue(testMasterUserName), + MasterUserPassword: pointer.ToOrNilIfZeroValue(testMasterUserPassword), + Port: pointer.ToIntAsInt64(testPort), + PreSignedUrl: pointer.ToOrNilIfZeroValue(testPresignedURL), + PreferredBackupWindow: pointer.ToOrNilIfZeroValue(testPreferredBackupWindow), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(testPreferredMaintenanceWindow), + StorageEncrypted: pointer.ToOrNilIfZeroValue(true), VpcSecurityGroupIds: toStringPtrArray( testVpcSecurityGroup, testOtherVpcSecurityGroup, ), Tags: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - {Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, }, }, }, @@ -2067,21 +2067,21 @@ func TestCreate(t *testing.T) { &testAvailabilityZone, &testOtherAvailabilityZone, }, - BackupRetentionPeriod: pointer.Int64(testBackupRetentionPeriod), + BackupRetentionPeriod: pointer.ToIntAsInt64(testBackupRetentionPeriod), DBClusterParameterGroup: &testDBClusterParameterGroupName, - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - DBClusterArn: pointer.String(testDBClusterArn), - DeletionProtection: pointer.Bool(true), - Endpoint: pointer.String(testEndpoint), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + DBClusterArn: pointer.ToOrNilIfZeroValue(testDBClusterArn), + DeletionProtection: pointer.ToOrNilIfZeroValue(true), + Endpoint: pointer.ToOrNilIfZeroValue(testEndpoint), Engine: &testEngine, EngineVersion: &testEngineVersion, KmsKeyId: &testKMSKeyID, MasterUsername: &testMasterUserName, - ReaderEndpoint: pointer.String(testReaderEndpoint), - Port: pointer.Int64(testPort), + ReaderEndpoint: pointer.ToOrNilIfZeroValue(testReaderEndpoint), + Port: pointer.ToIntAsInt64(testPort), PreferredBackupWindow: &testPreferredBackupWindow, PreferredMaintenanceWindow: &testPreferredMaintenanceWindow, - StorageEncrypted: pointer.Bool(true), + StorageEncrypted: pointer.ToOrNilIfZeroValue(true), }, }, nil }, @@ -2092,21 +2092,21 @@ func TestCreate(t *testing.T) { &testAvailabilityZone, &testOtherAvailabilityZone, }, - BackupRetentionPeriod: pointer.Int64(testBackupRetentionPeriod), + BackupRetentionPeriod: pointer.ToIntAsInt64(testBackupRetentionPeriod), DBClusterParameterGroup: &testDBClusterParameterGroupName, - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - DBClusterArn: pointer.String(testDBClusterArn), - DeletionProtection: pointer.Bool(true), - Endpoint: pointer.String(testEndpoint), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + DBClusterArn: pointer.ToOrNilIfZeroValue(testDBClusterArn), + DeletionProtection: pointer.ToOrNilIfZeroValue(true), + Endpoint: pointer.ToOrNilIfZeroValue(testEndpoint), Engine: &testEngine, EngineVersion: &testEngineVersion, KmsKeyId: &testKMSKeyID, MasterUsername: &testMasterUserName, - ReaderEndpoint: pointer.String(testReaderEndpoint), - Port: pointer.Int64(testPort), + ReaderEndpoint: pointer.ToOrNilIfZeroValue(testReaderEndpoint), + Port: pointer.ToIntAsInt64(testPort), PreferredBackupWindow: &testPreferredBackupWindow, PreferredMaintenanceWindow: &testPreferredMaintenanceWindow, - StorageEncrypted: pointer.Bool(true), + StorageEncrypted: pointer.ToOrNilIfZeroValue(true), }, }, nil }, @@ -2136,8 +2136,8 @@ func TestCreate(t *testing.T) { withPreferredMaintenanceWindow(testPreferredMaintenanceWindow), withStorageEncrypted(true), withTags( - &svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - &svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, ), withVpcSecurityGroupIds( testVpcSecurityGroup, @@ -2177,8 +2177,8 @@ func TestCreate(t *testing.T) { withPreferredMaintenanceWindow(testPreferredMaintenanceWindow), withStorageEncrypted(true), withTags( - &svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - &svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, ), withVpcSecurityGroupIds( testVpcSecurityGroup, @@ -2206,28 +2206,28 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &docdb.RestoreDBClusterFromSnapshotInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), AvailabilityZones: toStringPtrArray( testAvailabilityZone, testOtherAvailabilityZone, ), - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), - DeletionProtection: pointer.Bool(true), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), + DeletionProtection: pointer.ToOrNilIfZeroValue(true), EnableCloudwatchLogsExports: toStringPtrArray( testCloudWatchLog, testOtherCloudWatchLog, ), - Engine: pointer.String(testEngine), - EngineVersion: pointer.String(testEngineVersion), - KmsKeyId: pointer.String(testKMSKeyID), - Port: pointer.Int64(testPort), + Engine: pointer.ToOrNilIfZeroValue(testEngine), + EngineVersion: pointer.ToOrNilIfZeroValue(testEngineVersion), + KmsKeyId: pointer.ToOrNilIfZeroValue(testKMSKeyID), + Port: pointer.ToIntAsInt64(testPort), VpcSecurityGroupIds: toStringPtrArray( testVpcSecurityGroup, testOtherVpcSecurityGroup, ), Tags: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - {Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, }, SnapshotIdentifier: ptr.To("abcd"), }, @@ -2237,36 +2237,36 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &docdb.CreateDBClusterInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), AvailabilityZones: toStringPtrArray( testAvailabilityZone, testOtherAvailabilityZone, ), - BackupRetentionPeriod: pointer.Int64(testBackupRetentionPeriod), - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), - DeletionProtection: pointer.Bool(true), + BackupRetentionPeriod: pointer.ToIntAsInt64(testBackupRetentionPeriod), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), + DeletionProtection: pointer.ToOrNilIfZeroValue(true), EnableCloudwatchLogsExports: toStringPtrArray( testCloudWatchLog, testOtherCloudWatchLog, ), - Engine: pointer.String(testEngine), - EngineVersion: pointer.String(testEngineVersion), - KmsKeyId: pointer.String(testKMSKeyID), - MasterUsername: pointer.String(testMasterUserName), - MasterUserPassword: pointer.String(testMasterUserPassword), - Port: pointer.Int64(testPort), - PreSignedUrl: pointer.String(testPresignedURL), - PreferredBackupWindow: pointer.String(testPreferredBackupWindow), - PreferredMaintenanceWindow: pointer.String(testPreferredMaintenanceWindow), - StorageEncrypted: pointer.Bool(true), + Engine: pointer.ToOrNilIfZeroValue(testEngine), + EngineVersion: pointer.ToOrNilIfZeroValue(testEngineVersion), + KmsKeyId: pointer.ToOrNilIfZeroValue(testKMSKeyID), + MasterUsername: pointer.ToOrNilIfZeroValue(testMasterUserName), + MasterUserPassword: pointer.ToOrNilIfZeroValue(testMasterUserPassword), + Port: pointer.ToIntAsInt64(testPort), + PreSignedUrl: pointer.ToOrNilIfZeroValue(testPresignedURL), + PreferredBackupWindow: pointer.ToOrNilIfZeroValue(testPreferredBackupWindow), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(testPreferredMaintenanceWindow), + StorageEncrypted: pointer.ToOrNilIfZeroValue(true), VpcSecurityGroupIds: toStringPtrArray( testVpcSecurityGroup, testOtherVpcSecurityGroup, ), Tags: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - {Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, }, }, }, @@ -2293,21 +2293,21 @@ func TestCreate(t *testing.T) { &testAvailabilityZone, &testOtherAvailabilityZone, }, - BackupRetentionPeriod: pointer.Int64(testBackupRetentionPeriod), + BackupRetentionPeriod: pointer.ToIntAsInt64(testBackupRetentionPeriod), DBClusterParameterGroup: &testDBClusterParameterGroupName, - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - DBClusterArn: pointer.String(testDBClusterArn), - DeletionProtection: pointer.Bool(true), - Endpoint: pointer.String(testEndpoint), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + DBClusterArn: pointer.ToOrNilIfZeroValue(testDBClusterArn), + DeletionProtection: pointer.ToOrNilIfZeroValue(true), + Endpoint: pointer.ToOrNilIfZeroValue(testEndpoint), Engine: &testEngine, EngineVersion: &testEngineVersion, KmsKeyId: &testKMSKeyID, MasterUsername: &testMasterUserName, - ReaderEndpoint: pointer.String(testReaderEndpoint), - Port: pointer.Int64(testPort), + ReaderEndpoint: pointer.ToOrNilIfZeroValue(testReaderEndpoint), + Port: pointer.ToIntAsInt64(testPort), PreferredBackupWindow: &testPreferredBackupWindow, PreferredMaintenanceWindow: &testPreferredMaintenanceWindow, - StorageEncrypted: pointer.Bool(true), + StorageEncrypted: pointer.ToOrNilIfZeroValue(true), }, }, nil }, @@ -2318,21 +2318,21 @@ func TestCreate(t *testing.T) { &testAvailabilityZone, &testOtherAvailabilityZone, }, - BackupRetentionPeriod: pointer.Int64(testBackupRetentionPeriod), + BackupRetentionPeriod: pointer.ToIntAsInt64(testBackupRetentionPeriod), DBClusterParameterGroup: &testDBClusterParameterGroupName, - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - DBClusterArn: pointer.String(testDBClusterArn), - DeletionProtection: pointer.Bool(true), - Endpoint: pointer.String(testEndpoint), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + DBClusterArn: pointer.ToOrNilIfZeroValue(testDBClusterArn), + DeletionProtection: pointer.ToOrNilIfZeroValue(true), + Endpoint: pointer.ToOrNilIfZeroValue(testEndpoint), Engine: &testEngine, EngineVersion: &testEngineVersion, KmsKeyId: &testKMSKeyID, MasterUsername: &testMasterUserName, - ReaderEndpoint: pointer.String(testReaderEndpoint), - Port: pointer.Int64(testPort), + ReaderEndpoint: pointer.ToOrNilIfZeroValue(testReaderEndpoint), + Port: pointer.ToIntAsInt64(testPort), PreferredBackupWindow: &testPreferredBackupWindow, PreferredMaintenanceWindow: &testPreferredMaintenanceWindow, - StorageEncrypted: pointer.Bool(true), + StorageEncrypted: pointer.ToOrNilIfZeroValue(true), }, }, nil }, @@ -2362,8 +2362,8 @@ func TestCreate(t *testing.T) { withPreferredMaintenanceWindow(testPreferredMaintenanceWindow), withStorageEncrypted(true), withTags( - &svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - &svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, ), withVpcSecurityGroupIds( testVpcSecurityGroup, @@ -2406,8 +2406,8 @@ func TestCreate(t *testing.T) { withPreferredMaintenanceWindow(testPreferredMaintenanceWindow), withStorageEncrypted(true), withTags( - &svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - &svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, ), withVpcSecurityGroupIds( testVpcSecurityGroup, @@ -2438,22 +2438,22 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &docdb.RestoreDBClusterToPointInTimeInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), - DeletionProtection: pointer.Bool(true), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), + DeletionProtection: pointer.ToOrNilIfZeroValue(true), EnableCloudwatchLogsExports: toStringPtrArray( testCloudWatchLog, testOtherCloudWatchLog, ), - KmsKeyId: pointer.String(testKMSKeyID), - Port: pointer.Int64(testPort), + KmsKeyId: pointer.ToOrNilIfZeroValue(testKMSKeyID), + Port: pointer.ToIntAsInt64(testPort), VpcSecurityGroupIds: toStringPtrArray( testVpcSecurityGroup, testOtherVpcSecurityGroup, ), Tags: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - {Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, }, RestoreToTime: &timeNow, UseLatestRestorableTime: ptr.To(true), @@ -2466,36 +2466,36 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &docdb.CreateDBClusterInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), AvailabilityZones: toStringPtrArray( testAvailabilityZone, testOtherAvailabilityZone, ), - BackupRetentionPeriod: pointer.Int64(testBackupRetentionPeriod), - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), - DeletionProtection: pointer.Bool(true), + BackupRetentionPeriod: pointer.ToIntAsInt64(testBackupRetentionPeriod), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), + DeletionProtection: pointer.ToOrNilIfZeroValue(true), EnableCloudwatchLogsExports: toStringPtrArray( testCloudWatchLog, testOtherCloudWatchLog, ), - Engine: pointer.String(testEngine), - EngineVersion: pointer.String(testEngineVersion), - KmsKeyId: pointer.String(testKMSKeyID), - MasterUsername: pointer.String(testMasterUserName), - MasterUserPassword: pointer.String(testMasterUserPassword), - Port: pointer.Int64(testPort), - PreSignedUrl: pointer.String(testPresignedURL), - PreferredBackupWindow: pointer.String(testPreferredBackupWindow), - PreferredMaintenanceWindow: pointer.String(testPreferredMaintenanceWindow), - StorageEncrypted: pointer.Bool(true), + Engine: pointer.ToOrNilIfZeroValue(testEngine), + EngineVersion: pointer.ToOrNilIfZeroValue(testEngineVersion), + KmsKeyId: pointer.ToOrNilIfZeroValue(testKMSKeyID), + MasterUsername: pointer.ToOrNilIfZeroValue(testMasterUserName), + MasterUserPassword: pointer.ToOrNilIfZeroValue(testMasterUserPassword), + Port: pointer.ToIntAsInt64(testPort), + PreSignedUrl: pointer.ToOrNilIfZeroValue(testPresignedURL), + PreferredBackupWindow: pointer.ToOrNilIfZeroValue(testPreferredBackupWindow), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(testPreferredMaintenanceWindow), + StorageEncrypted: pointer.ToOrNilIfZeroValue(true), VpcSecurityGroupIds: toStringPtrArray( testVpcSecurityGroup, testOtherVpcSecurityGroup, ), Tags: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - {Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, }, }, }, @@ -2528,7 +2528,7 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &docdb.CreateDBClusterInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -2546,11 +2546,11 @@ func TestCreate(t *testing.T) { MockCreateDBClusterWithContext: func(c context.Context, cdpgi *docdb.CreateDBClusterInput, o []request.Option) (*docdb.CreateDBClusterOutput, error) { return &docdb.CreateDBClusterOutput{ DBCluster: &docdb.DBCluster{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - DBClusterArn: pointer.String(testDBClusterArn), - Endpoint: pointer.String(testEndpoint), - ReaderEndpoint: pointer.String(testReaderEndpoint), - Port: pointer.Int64(testPort), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + DBClusterArn: pointer.ToOrNilIfZeroValue(testDBClusterArn), + Endpoint: pointer.ToOrNilIfZeroValue(testEndpoint), + ReaderEndpoint: pointer.ToOrNilIfZeroValue(testReaderEndpoint), + Port: pointer.ToIntAsInt64(testPort), }, }, nil }, @@ -2635,9 +2635,9 @@ func TestDelete(t *testing.T) { { Ctx: context.Background(), I: &docdb.DeleteDBClusterInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - FinalDBSnapshotIdentifier: pointer.String(testFinalDBSnapshotIdentifier), - SkipFinalSnapshot: pointer.Bool(true), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + FinalDBSnapshotIdentifier: pointer.ToOrNilIfZeroValue(testFinalDBSnapshotIdentifier), + SkipFinalSnapshot: pointer.ToOrNilIfZeroValue(true), }, }, }, @@ -2668,7 +2668,7 @@ func TestDelete(t *testing.T) { { Ctx: context.Background(), I: &docdb.DeleteDBClusterInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), }, }, }, @@ -2714,8 +2714,8 @@ func TestUpdate(t *testing.T) { MockModifyDBClusterWithContext: func(c context.Context, mdpgi *docdb.ModifyDBClusterInput, o []request.Option) (*docdb.ModifyDBClusterOutput, error) { return &docdb.ModifyDBClusterOutput{ DBCluster: &docdb.DBCluster{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - DBClusterArn: pointer.String(testDBClusterArn), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + DBClusterArn: pointer.ToOrNilIfZeroValue(testDBClusterArn), }, }, nil }, @@ -2723,8 +2723,8 @@ func TestUpdate(t *testing.T) { return &docdb.ListTagsForResourceOutput{ TagList: []*docdb.Tag{ { - Key: pointer.String(testOtherOtherTagKey), - Value: pointer.String(testOtherOtherTagValue), + Key: pointer.ToOrNilIfZeroValue(testOtherOtherTagKey), + Value: pointer.ToOrNilIfZeroValue(testOtherOtherTagValue), }, }, }, nil @@ -2757,8 +2757,8 @@ func TestUpdate(t *testing.T) { withPreferredMaintenanceWindow(testPreferredMaintenanceWindow), withStorageEncrypted(true), withTags( - &svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - &svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, ), withVpcSecurityGroupIds( testVpcSecurityGroup, @@ -2788,8 +2788,8 @@ func TestUpdate(t *testing.T) { withPreferredMaintenanceWindow(testPreferredMaintenanceWindow), withStorageEncrypted(true), withTags( - &svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - &svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, ), withVpcSecurityGroupIds( testVpcSecurityGroup, @@ -2801,14 +2801,14 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &docdb.ModifyDBClusterInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - BackupRetentionPeriod: pointer.Int64(testBackupRetentionPeriod), - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), - DeletionProtection: pointer.Bool(true), - EngineVersion: pointer.String(testEngineVersion), - Port: pointer.Int64(testPort), - PreferredBackupWindow: pointer.String(testPreferredBackupWindow), - PreferredMaintenanceWindow: pointer.String(testPreferredMaintenanceWindow), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + BackupRetentionPeriod: pointer.ToIntAsInt64(testBackupRetentionPeriod), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), + DeletionProtection: pointer.ToOrNilIfZeroValue(true), + EngineVersion: pointer.ToOrNilIfZeroValue(testEngineVersion), + Port: pointer.ToIntAsInt64(testPort), + PreferredBackupWindow: pointer.ToOrNilIfZeroValue(testPreferredBackupWindow), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(testPreferredMaintenanceWindow), VpcSecurityGroupIds: toStringPtrArray( testVpcSecurityGroup, testOtherVpcSecurityGroup, @@ -2823,17 +2823,17 @@ func TestUpdate(t *testing.T) { ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBClusterArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBClusterArn), }, }, }, AddTagsToResource: []*fake.CallAddTagsToResource{ { I: &docdb.AddTagsToResourceInput{ - ResourceName: pointer.String(testDBClusterArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBClusterArn), Tags: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - {Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, }, }, }, @@ -2841,9 +2841,9 @@ func TestUpdate(t *testing.T) { RemoveTagsFromResource: []*fake.CallRemoveTagsFromResource{ { I: &docdb.RemoveTagsFromResourceInput{ - ResourceName: pointer.String(testDBClusterArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBClusterArn), TagKeys: []*string{ - pointer.String(testOtherOtherTagKey), + pointer.ToOrNilIfZeroValue(testOtherOtherTagKey), }, }, }, @@ -2857,8 +2857,8 @@ func TestUpdate(t *testing.T) { MockModifyDBClusterWithContext: func(c context.Context, mdpgi *docdb.ModifyDBClusterInput, o []request.Option) (*docdb.ModifyDBClusterOutput, error) { return &docdb.ModifyDBClusterOutput{ DBCluster: &docdb.DBCluster{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - DBClusterArn: pointer.String(testDBClusterArn), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + DBClusterArn: pointer.ToOrNilIfZeroValue(testDBClusterArn), }, }, nil }, @@ -2891,7 +2891,7 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &docdb.ModifyDBClusterInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), CloudwatchLogsExportConfiguration: &docdb.CloudwatchLogsExportConfiguration{ DisableLogTypes: []*string{}, EnableLogTypes: toStringPtrArray( @@ -2905,7 +2905,7 @@ func TestUpdate(t *testing.T) { ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBClusterArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBClusterArn), }, }, }, @@ -2918,8 +2918,8 @@ func TestUpdate(t *testing.T) { MockModifyDBClusterWithContext: func(c context.Context, mdpgi *docdb.ModifyDBClusterInput, o []request.Option) (*docdb.ModifyDBClusterOutput, error) { return &docdb.ModifyDBClusterOutput{ DBCluster: &docdb.DBCluster{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - DBClusterArn: pointer.String(testDBClusterArn), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + DBClusterArn: pointer.ToOrNilIfZeroValue(testDBClusterArn), }, }, nil }, @@ -2952,7 +2952,7 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &docdb.ModifyDBClusterInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), CloudwatchLogsExportConfiguration: &docdb.CloudwatchLogsExportConfiguration{ DisableLogTypes: toStringPtrArray( testCloudWatchLog, @@ -2965,7 +2965,7 @@ func TestUpdate(t *testing.T) { ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBClusterArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBClusterArn), }, }, }, @@ -2978,8 +2978,8 @@ func TestUpdate(t *testing.T) { MockModifyDBClusterWithContext: func(c context.Context, mdpgi *docdb.ModifyDBClusterInput, o []request.Option) (*docdb.ModifyDBClusterOutput, error) { return &docdb.ModifyDBClusterOutput{ DBCluster: &docdb.DBCluster{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), - DBClusterArn: pointer.String(testDBClusterArn), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), + DBClusterArn: pointer.ToOrNilIfZeroValue(testDBClusterArn), }, }, nil }, @@ -3016,7 +3016,7 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &docdb.ModifyDBClusterInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), CloudwatchLogsExportConfiguration: &docdb.CloudwatchLogsExportConfiguration{ DisableLogTypes: toStringPtrArray( testCloudWatchLog, @@ -3031,7 +3031,7 @@ func TestUpdate(t *testing.T) { ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBClusterArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBClusterArn), }, }, }, @@ -3061,7 +3061,7 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &docdb.ModifyDBClusterInput{ - DBClusterIdentifier: pointer.String(testDBClusterIdentifier), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(testDBClusterIdentifier), CloudwatchLogsExportConfiguration: &docdb.CloudwatchLogsExportConfiguration{ DisableLogTypes: []*string{}, EnableLogTypes: []*string{}, @@ -3109,8 +3109,8 @@ func TestInitialize(t *testing.T) { "Successful": { args: args{ cr: instance(withTags( - &svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - &svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, )), kube: &test.MockClient{MockUpdate: test.NewMockUpdateFn(nil)}, }, @@ -3118,8 +3118,8 @@ func TestInitialize(t *testing.T) { cr: instance(withTags( mergeTags( []*svcapitypes.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - {Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, }, svcutils.GetExternalTags(instance()), )..., @@ -3129,8 +3129,8 @@ func TestInitialize(t *testing.T) { "UpdateFailed": { args: args{ cr: instance(withTags( - &svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - &svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, )), kube: &test.MockClient{MockUpdate: test.NewMockUpdateFn(errors.New(testErrBoom))}, }, @@ -3138,8 +3138,8 @@ func TestInitialize(t *testing.T) { cr: instance(withTags( mergeTags( []*svcapitypes.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - {Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, }, svcutils.GetExternalTags(instance()), )..., diff --git a/pkg/controller/docdb/dbclusterparametergroup/setup.go b/pkg/controller/docdb/dbclusterparametergroup/setup.go index 40cca83335..a2c1f52fa9 100644 --- a/pkg/controller/docdb/dbclusterparametergroup/setup.go +++ b/pkg/controller/docdb/dbclusterparametergroup/setup.go @@ -103,7 +103,7 @@ type hooks struct { } func preObserve(_ context.Context, cr *svcapitypes.DBClusterParameterGroup, obj *svcsdk.DescribeDBClusterParameterGroupsInput) error { - obj.DBClusterParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.DBClusterParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -179,7 +179,7 @@ func lateInitializeParameters(in []*svcapitypes.CustomParameter, from []*svcsdk. } func preUpdate(_ context.Context, cr *svcapitypes.DBClusterParameterGroup, obj *svcsdk.ModifyDBClusterParameterGroupInput) error { - obj.DBClusterParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.DBClusterParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.Parameters = generateSdkParameters(cr.Spec.ForProvider.Parameters) return nil } @@ -193,13 +193,13 @@ func (e *hooks) postUpdate(_ context.Context, cr *svcapitypes.DBClusterParameter } func preCreate(_ context.Context, cr *svcapitypes.DBClusterParameterGroup, obj *svcsdk.CreateDBClusterParameterGroupInput) error { - obj.DBClusterParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.DBClusterParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) // CreateDBClusterParameterGroup does not create the parameters themselves. Parameters are added during update. return nil } func preDelete(_ context.Context, cr *svcapitypes.DBClusterParameterGroup, obj *svcsdk.DeleteDBClusterParameterGroupInput) (bool, error) { - obj.DBClusterParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.DBClusterParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } diff --git a/pkg/controller/docdb/dbclusterparametergroup/setup_test.go b/pkg/controller/docdb/dbclusterparametergroup/setup_test.go index a2b9cda538..281397d7d8 100644 --- a/pkg/controller/docdb/dbclusterparametergroup/setup_test.go +++ b/pkg/controller/docdb/dbclusterparametergroup/setup_test.go @@ -87,25 +87,25 @@ func withExternalName(value string) docDBModifier { func withDBClusterParameterGroupName(value string) docDBModifier { return func(o *svcapitypes.DBClusterParameterGroup) { - o.Status.AtProvider.DBClusterParameterGroupName = pointer.String(value) + o.Status.AtProvider.DBClusterParameterGroupName = pointer.ToOrNilIfZeroValue(value) } } func withDescription(value string) docDBModifier { return func(o *svcapitypes.DBClusterParameterGroup) { - o.Spec.ForProvider.Description = pointer.String(value) + o.Spec.ForProvider.Description = pointer.ToOrNilIfZeroValue(value) } } func withDBParameterGroupFamily(value string) docDBModifier { return func(o *svcapitypes.DBClusterParameterGroup) { - o.Spec.ForProvider.DBParameterGroupFamily = pointer.String(value) + o.Spec.ForProvider.DBParameterGroupFamily = pointer.ToOrNilIfZeroValue(value) } } func withDBClusterParameterGroupARN(value string) docDBModifier { return func(o *svcapitypes.DBClusterParameterGroup) { - o.Status.AtProvider.DBClusterParameterGroupARN = pointer.String(value) + o.Status.AtProvider.DBClusterParameterGroupARN = pointer.ToOrNilIfZeroValue(value) } } @@ -162,7 +162,7 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClusterParameterGroupsOutput{ DBClusterParameterGroups: []*docdb.DBClusterParameterGroup{ { - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, nil @@ -197,7 +197,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClusterParameterGroupsInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -205,13 +205,13 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClusterParametersInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, { Ctx: context.Background(), I: &docdb.DescribeDBClusterParametersInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -230,7 +230,7 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClusterParameterGroupsOutput{ DBClusterParameterGroups: []*docdb.DBClusterParameterGroup{ { - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, nil @@ -239,8 +239,8 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClusterParametersOutput{ Parameters: []*docdb.Parameter{ { - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }, }, }, nil @@ -253,8 +253,8 @@ func TestObserve(t *testing.T) { withExternalName(testDBClusterParameterGroupName), withParameters( &svcapitypes.CustomParameter{ - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }, ), ), @@ -265,8 +265,8 @@ func TestObserve(t *testing.T) { withExternalName(testDBClusterParameterGroupName), withParameters( &svcapitypes.CustomParameter{ - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }, ), withConditions(xpv1.Available()), @@ -280,7 +280,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClusterParameterGroupsInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -288,13 +288,13 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClusterParametersInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, { Ctx: context.Background(), I: &docdb.DescribeDBClusterParametersInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -313,7 +313,7 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClusterParameterGroupsOutput{ DBClusterParameterGroups: []*docdb.DBClusterParameterGroup{ { - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, nil @@ -322,12 +322,12 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClusterParametersOutput{ Parameters: []*docdb.Parameter{ { - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }, { - ParameterName: pointer.String(testOtherParameterName), - ParameterValue: pointer.String(testOtherParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testOtherParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testOtherParameterValue), }, }, }, nil @@ -340,8 +340,8 @@ func TestObserve(t *testing.T) { withExternalName(testDBClusterParameterGroupName), withParameters( &svcapitypes.CustomParameter{ - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }, ), ), @@ -352,12 +352,12 @@ func TestObserve(t *testing.T) { withExternalName(testDBClusterParameterGroupName), withParameters( &svcapitypes.CustomParameter{ - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }, &svcapitypes.CustomParameter{ - ParameterName: pointer.String(testOtherParameterName), - ParameterValue: pointer.String(testOtherParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testOtherParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testOtherParameterValue), }, ), withConditions(xpv1.Available()), @@ -372,7 +372,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClusterParameterGroupsInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -380,13 +380,13 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClusterParametersInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, { Ctx: context.Background(), I: &docdb.DescribeDBClusterParametersInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -405,8 +405,8 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClusterParameterGroupsOutput{ DBClusterParameterGroups: []*docdb.DBClusterParameterGroup{ { - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), - Description: pointer.String(testDescription), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), + Description: pointer.ToOrNilIfZeroValue(testDescription), }, }, }, nil @@ -442,7 +442,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClusterParameterGroupsInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -450,7 +450,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClusterParametersInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -464,8 +464,8 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClusterParameterGroupsOutput{ DBClusterParameterGroups: []*docdb.DBClusterParameterGroup{ { - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), - DBParameterGroupFamily: pointer.String(testFamily), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), + DBParameterGroupFamily: pointer.ToOrNilIfZeroValue(testFamily), }, }, }, nil @@ -501,7 +501,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClusterParameterGroupsInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -509,7 +509,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClusterParametersInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -523,7 +523,7 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClusterParameterGroupsOutput{ DBClusterParameterGroups: []*docdb.DBClusterParameterGroup{ { - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, nil @@ -532,8 +532,8 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClusterParametersOutput{ Parameters: []*docdb.Parameter{ { - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }, }, }, nil @@ -543,8 +543,8 @@ func TestObserve(t *testing.T) { withExternalName(testDBClusterParameterGroupName), withParameters( &svcapitypes.CustomParameter{ - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testOtherParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testOtherParameterValue), }, ), ), @@ -555,8 +555,8 @@ func TestObserve(t *testing.T) { withExternalName(testDBClusterParameterGroupName), withParameters( &svcapitypes.CustomParameter{ - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testOtherParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testOtherParameterValue), }, ), withConditions(xpv1.Available()), @@ -570,7 +570,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClusterParameterGroupsInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -578,13 +578,13 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClusterParametersInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, { Ctx: context.Background(), I: &docdb.DescribeDBClusterParametersInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -616,7 +616,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClusterParameterGroupsInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -630,7 +630,7 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBClusterParameterGroupsOutput{ DBClusterParameterGroups: []*docdb.DBClusterParameterGroup{ { - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, nil @@ -657,7 +657,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClusterParameterGroupsInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -665,7 +665,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBClusterParametersInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -714,7 +714,7 @@ func TestCreate(t *testing.T) { MockCreateDBClusterParameterGroupWithContext: func(c context.Context, cdpgi *docdb.CreateDBClusterParameterGroupInput, o []request.Option) (*docdb.CreateDBClusterParameterGroupOutput, error) { return &docdb.CreateDBClusterParameterGroupOutput{ DBClusterParameterGroup: &docdb.DBClusterParameterGroup{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, nil }, @@ -735,7 +735,7 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &docdb.CreateDBClusterParameterGroupInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -748,7 +748,7 @@ func TestCreate(t *testing.T) { MockCreateDBClusterParameterGroupWithContext: func(c context.Context, cdpgi *docdb.CreateDBClusterParameterGroupInput, o []request.Option) (*docdb.CreateDBClusterParameterGroupOutput, error) { return &docdb.CreateDBClusterParameterGroupOutput{ DBClusterParameterGroup: &docdb.DBClusterParameterGroup{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, nil }, @@ -757,12 +757,12 @@ func TestCreate(t *testing.T) { withExternalName(testDBClusterParameterGroupName), withParameters( &svcapitypes.CustomParameter{ - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }, &svcapitypes.CustomParameter{ - ParameterName: pointer.String(testOtherParameterName), - ParameterValue: pointer.String(testOtherParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testOtherParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testOtherParameterValue), }, ), ), @@ -774,12 +774,12 @@ func TestCreate(t *testing.T) { withConditions(xpv1.Creating()), withParameters( &svcapitypes.CustomParameter{ - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }, &svcapitypes.CustomParameter{ - ParameterName: pointer.String(testOtherParameterName), - ParameterValue: pointer.String(testOtherParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testOtherParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testOtherParameterValue), }, ), ), @@ -789,7 +789,7 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &docdb.CreateDBClusterParameterGroupInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -819,7 +819,7 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &docdb.CreateDBClusterParameterGroupInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -832,7 +832,7 @@ func TestCreate(t *testing.T) { MockCreateDBClusterParameterGroupWithContext: func(c context.Context, cdpgi *docdb.CreateDBClusterParameterGroupInput, o []request.Option) (*docdb.CreateDBClusterParameterGroupOutput, error) { return &docdb.CreateDBClusterParameterGroupOutput{ DBClusterParameterGroup: &docdb.DBClusterParameterGroup{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, nil }, @@ -841,8 +841,8 @@ func TestCreate(t *testing.T) { withExternalName(testDBClusterParameterGroupName), withParameters( &svcapitypes.CustomParameter{ - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }, ), ), @@ -854,8 +854,8 @@ func TestCreate(t *testing.T) { withConditions(xpv1.Creating()), withParameters( &svcapitypes.CustomParameter{ - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }, ), ), @@ -865,7 +865,7 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &docdb.CreateDBClusterParameterGroupInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -928,7 +928,7 @@ func TestDelete(t *testing.T) { { Ctx: context.Background(), I: &docdb.DeleteDBClusterParameterGroupInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -957,7 +957,7 @@ func TestDelete(t *testing.T) { { Ctx: context.Background(), I: &docdb.DeleteDBClusterParameterGroupInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, }, }, @@ -1002,7 +1002,7 @@ func TestUpdate(t *testing.T) { docdb: &fake.MockDocDBClient{ MockModifyDBClusterParameterGroupWithContext: func(c context.Context, mdpgi *docdb.ModifyDBClusterParameterGroupInput, o []request.Option) (*docdb.ModifyDBClusterParameterGroupOutput, error) { return &docdb.ModifyDBClusterParameterGroupOutput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), }, nil }, MockListTagsForResource: func(ltfri *docdb.ListTagsForResourceInput) (*docdb.ListTagsForResourceOutput, error) { @@ -1019,17 +1019,17 @@ func TestUpdate(t *testing.T) { withExternalName(testDBClusterParameterGroupName), withParameters( &svcapitypes.CustomParameter{ - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }, &svcapitypes.CustomParameter{ - ParameterName: pointer.String(testOtherParameterName), - ParameterValue: pointer.String(testOtherParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testOtherParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testOtherParameterValue), }, ), withTags( - &svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - &svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, ), ), }, @@ -1040,17 +1040,17 @@ func TestUpdate(t *testing.T) { withConditions(xpv1.Available()), withParameters( &svcapitypes.CustomParameter{ - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }, &svcapitypes.CustomParameter{ - ParameterName: pointer.String(testOtherParameterName), - ParameterValue: pointer.String(testOtherParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testOtherParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testOtherParameterValue), }, ), withTags( - &svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - &svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, ), ), docdb: fake.MockDocDBClientCall{ @@ -1058,15 +1058,15 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &docdb.ModifyDBClusterParameterGroupInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), Parameters: []*docdb.Parameter{ { - ParameterName: pointer.String(testParameterName), - ParameterValue: pointer.String(testParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testParameterValue), }, { - ParameterName: pointer.String(testOtherParameterName), - ParameterValue: pointer.String(testOtherParameterValue), + ParameterName: pointer.ToOrNilIfZeroValue(testOtherParameterName), + ParameterValue: pointer.ToOrNilIfZeroValue(testOtherParameterValue), }, }, }, @@ -1075,17 +1075,17 @@ func TestUpdate(t *testing.T) { ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBClusterParameterGroupARN), + ResourceName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupARN), }, }, }, AddTagsToResource: []*fake.CallAddTagsToResource{ { I: &docdb.AddTagsToResourceInput{ - ResourceName: pointer.String(testDBClusterParameterGroupARN), + ResourceName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupARN), Tags: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - {Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, }, }, }, @@ -1114,7 +1114,7 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &docdb.ModifyDBClusterParameterGroupInput{ - DBClusterParameterGroupName: pointer.String(testDBClusterParameterGroupName), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(testDBClusterParameterGroupName), Parameters: []*docdb.Parameter{}, }, }, @@ -1159,8 +1159,8 @@ func TestInitialize(t *testing.T) { "Successful": { args: args{ cr: instance(withTags( - &svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - &svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, )), kube: &test.MockClient{MockUpdate: test.NewMockUpdateFn(nil)}, }, @@ -1168,8 +1168,8 @@ func TestInitialize(t *testing.T) { cr: instance(withTags( mergeTags( []*svcapitypes.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - {Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, }, svcutils.GetExternalTags(instance()), )..., @@ -1179,8 +1179,8 @@ func TestInitialize(t *testing.T) { "UpdateFailed": { args: args{ cr: instance(withTags( - &svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - &svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, )), kube: &test.MockClient{MockUpdate: test.NewMockUpdateFn(errors.New(testErrBoom))}, }, @@ -1188,8 +1188,8 @@ func TestInitialize(t *testing.T) { cr: instance(withTags( mergeTags( []*svcapitypes.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - {Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, }, svcutils.GetExternalTags(instance()), )..., diff --git a/pkg/controller/docdb/dbinstance/setup.go b/pkg/controller/docdb/dbinstance/setup.go index 09e7f142de..971f6863ac 100644 --- a/pkg/controller/docdb/dbinstance/setup.go +++ b/pkg/controller/docdb/dbinstance/setup.go @@ -101,7 +101,7 @@ type hooks struct { } func preObserve(_ context.Context, cr *svcapitypes.DBInstance, obj *svcsdk.DescribeDBInstancesInput) error { - obj.DBInstanceIdentifier = pointer.String(meta.GetExternalName(cr)) + obj.DBInstanceIdentifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -144,16 +144,16 @@ func (e *hooks) isUpToDate(_ context.Context, cr *svcapitypes.DBInstance, resp * func lateInitialize(cr *svcapitypes.DBInstanceParameters, resp *svcsdk.DescribeDBInstancesOutput) error { instance := resp.DBInstances[0] - cr.AvailabilityZone = pointer.LateInitializeStringPtr(cr.AvailabilityZone, instance.AvailabilityZone) - cr.AutoMinorVersionUpgrade = pointer.LateInitializeBoolPtr(cr.AutoMinorVersionUpgrade, instance.AutoMinorVersionUpgrade) - cr.CACertificateIdentifier = pointer.LateInitializeStringPtr(cr.CACertificateIdentifier, instance.CACertificateIdentifier) - cr.PreferredMaintenanceWindow = pointer.LateInitializeStringPtr(cr.PreferredMaintenanceWindow, instance.PreferredMaintenanceWindow) - cr.PromotionTier = pointer.LateInitializeInt64Ptr(cr.PromotionTier, instance.PromotionTier) + cr.AvailabilityZone = pointer.LateInitialize(cr.AvailabilityZone, instance.AvailabilityZone) + cr.AutoMinorVersionUpgrade = pointer.LateInitialize(cr.AutoMinorVersionUpgrade, instance.AutoMinorVersionUpgrade) + cr.CACertificateIdentifier = pointer.LateInitialize(cr.CACertificateIdentifier, instance.CACertificateIdentifier) + cr.PreferredMaintenanceWindow = pointer.LateInitialize(cr.PreferredMaintenanceWindow, instance.PreferredMaintenanceWindow) + cr.PromotionTier = pointer.LateInitialize(cr.PromotionTier, instance.PromotionTier) return nil } func preUpdate(ctx context.Context, cr *svcapitypes.DBInstance, obj *svcsdk.ModifyDBInstanceInput) error { - obj.DBInstanceIdentifier = pointer.String(meta.GetExternalName(cr)) + obj.DBInstanceIdentifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.CACertificateIdentifier = cr.Spec.ForProvider.CACertificateIdentifier obj.ApplyImmediately = cr.Spec.ForProvider.ApplyImmediately return nil @@ -167,7 +167,7 @@ func (e *hooks) postUpdate(ctx context.Context, cr *svcapitypes.DBInstance, resp } func preCreate(ctx context.Context, cr *svcapitypes.DBInstance, obj *svcsdk.CreateDBInstanceInput) error { - obj.DBInstanceIdentifier = pointer.String(meta.GetExternalName(cr)) + obj.DBInstanceIdentifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.DBClusterIdentifier = cr.Spec.ForProvider.DBClusterIdentifier return nil } @@ -187,7 +187,7 @@ func preDelete(_ context.Context, cr *svcapitypes.DBInstance, obj *svcsdk.Delete return true, nil } - obj.DBInstanceIdentifier = pointer.String(meta.GetExternalName(cr)) + obj.DBInstanceIdentifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } diff --git a/pkg/controller/docdb/dbinstance/setup_test.go b/pkg/controller/docdb/dbinstance/setup_test.go index 16b72f2f60..dbf9ee9640 100644 --- a/pkg/controller/docdb/dbinstance/setup_test.go +++ b/pkg/controller/docdb/dbinstance/setup_test.go @@ -31,6 +31,7 @@ import ( "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/pkg/errors" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" svcapitypes "github.com/crossplane-contrib/provider-aws/apis/docdb/v1alpha1" @@ -90,13 +91,13 @@ func withExternalName(value string) docDBModifier { func withDBIdentifier(value string) docDBModifier { return func(o *svcapitypes.DBInstance) { - o.Status.AtProvider.DBInstanceIdentifier = pointer.String(value) + o.Status.AtProvider.DBInstanceIdentifier = pointer.ToOrNilIfZeroValue(value) } } func withDBInstanceArn(value string) docDBModifier { return func(o *svcapitypes.DBInstance) { - o.Status.AtProvider.DBInstanceARN = pointer.String(value) + o.Status.AtProvider.DBInstanceARN = pointer.ToOrNilIfZeroValue(value) } } @@ -108,7 +109,7 @@ func withEndpoint(value *svcapitypes.Endpoint) docDBModifier { func withStatus(value string) docDBModifier { return func(o *svcapitypes.DBInstance) { - o.Status.AtProvider.DBInstanceStatus = pointer.String(value) + o.Status.AtProvider.DBInstanceStatus = pointer.ToOrNilIfZeroValue(value) } } @@ -120,43 +121,43 @@ func withConditions(value ...xpv1.Condition) docDBModifier { func withAvailabilityZone(value string) docDBModifier { return func(o *svcapitypes.DBInstance) { - o.Spec.ForProvider.AvailabilityZone = pointer.String(value) + o.Spec.ForProvider.AvailabilityZone = pointer.ToOrNilIfZeroValue(value) } } func withAutoMinorVersionUpgrade(value bool) docDBModifier { return func(o *svcapitypes.DBInstance) { - o.Spec.ForProvider.AutoMinorVersionUpgrade = pointer.Bool(value, pointer.FieldRequired) + o.Spec.ForProvider.AutoMinorVersionUpgrade = ptr.To(value) } } func withCACertificateIdentifier(value string) docDBModifier { return func(o *svcapitypes.DBInstance) { - o.Spec.ForProvider.CACertificateIdentifier = pointer.String(value) + o.Spec.ForProvider.CACertificateIdentifier = pointer.ToOrNilIfZeroValue(value) } } func withStatusCACertificateIdentifier(value string) docDBModifier { return func(o *svcapitypes.DBInstance) { - o.Status.AtProvider.CACertificateIdentifier = pointer.String(value) + o.Status.AtProvider.CACertificateIdentifier = pointer.ToOrNilIfZeroValue(value) } } func withDBInstanceClass(value string) docDBModifier { return func(o *svcapitypes.DBInstance) { - o.Spec.ForProvider.DBInstanceClass = pointer.String(value) + o.Spec.ForProvider.DBInstanceClass = pointer.ToOrNilIfZeroValue(value) } } func withPreferredMaintenanceWindow(value string) docDBModifier { return func(o *svcapitypes.DBInstance) { - o.Spec.ForProvider.PreferredMaintenanceWindow = pointer.String(value) + o.Spec.ForProvider.PreferredMaintenanceWindow = pointer.ToOrNilIfZeroValue(value) } } func withPromotionTier(value int) docDBModifier { return func(o *svcapitypes.DBInstance) { - o.Spec.ForProvider.PromotionTier = pointer.Int64(value) + o.Spec.ForProvider.PromotionTier = pointer.ToIntAsInt64(value) } } @@ -191,10 +192,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, }, }}, nil }, @@ -215,8 +216,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateAvailable), withConditions(xpv1.Available()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), ), result: managed.ExternalObservation{ @@ -236,7 +237,7 @@ func TestObserve(t *testing.T) { }, }, ListTagsForResource: []*fake.CallListTagsForResource{ - {I: &docdb.ListTagsForResourceInput{ResourceName: pointer.String(testDBInstanceArn)}}, + {I: &docdb.ListTagsForResourceInput{ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn)}}, }, }, }, @@ -247,11 +248,11 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - AvailabilityZone: pointer.String(testAvailabilityZone), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + AvailabilityZone: pointer.ToOrNilIfZeroValue(testAvailabilityZone), }, }}, nil }, @@ -273,8 +274,8 @@ func TestObserve(t *testing.T) { withConditions(xpv1.Available()), withStatus(svcapitypes.DocDBInstanceStateAvailable), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withAvailabilityZone(testOtherAvailabilityZone), ), @@ -297,7 +298,7 @@ func TestObserve(t *testing.T) { ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, }, @@ -310,11 +311,11 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - AutoMinorVersionUpgrade: pointer.Bool(true), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + AutoMinorVersionUpgrade: pointer.ToOrNilIfZeroValue(true), }, }}, nil }, @@ -336,8 +337,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateAvailable), withConditions(xpv1.Available()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withAutoMinorVersionUpgrade(false), ), @@ -366,11 +367,11 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - CACertificateIdentifier: pointer.String(testCACertificateIdentifier), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + CACertificateIdentifier: pointer.ToOrNilIfZeroValue(testCACertificateIdentifier), }, }}, nil }, @@ -392,8 +393,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateAvailable), withConditions(xpv1.Available()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withCACertificateIdentifier(testOtherCACertificateIdentifier), withStatusCACertificateIdentifier(testCACertificateIdentifier), @@ -423,11 +424,11 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - DBInstanceClass: pointer.String(testDBInstanceClass), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + DBInstanceClass: pointer.ToOrNilIfZeroValue(testDBInstanceClass), }, }}, nil }, @@ -449,8 +450,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateAvailable), withConditions(xpv1.Available()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withDBInstanceClass(testOtherDBInstanceClass), ), @@ -479,11 +480,11 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - PreferredMaintenanceWindow: pointer.String(testPreferredMaintenanceWindow), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(testPreferredMaintenanceWindow), }, }}, nil }, @@ -505,8 +506,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateAvailable), withConditions(xpv1.Available()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withPreferredMaintenanceWindow(testOtherPreferredMaintenanceWindow), ), @@ -535,10 +536,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - PromotionTier: pointer.Int64(testPromotionTier), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + PromotionTier: pointer.ToIntAsInt64(testPromotionTier), }, }}, nil }, @@ -559,8 +560,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateAvailable), withConditions(xpv1.Available()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withPromotionTier(testOtherPromotionTier), ), @@ -589,23 +590,23 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, }, }}, nil }, MockListTagsForResource: func(ltfri *docdb.ListTagsForResourceInput) (*docdb.ListTagsForResourceOutput, error) { return &docdb.ListTagsForResourceOutput{TagList: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, }}, nil }, }, cr: instance( withExternalName(testDBIdentifier), withDBIdentifier(testDBIdentifier), - withTags(&svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}), + withTags(&svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}), ), }, want: want{ @@ -616,10 +617,10 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateAvailable), withConditions(xpv1.Available()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), - withTags(&svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}), + withTags(&svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}), ), result: managed.ExternalObservation{ ResourceExists: true, @@ -639,7 +640,7 @@ func TestObserve(t *testing.T) { }, ListTagsForResource: []*fake.CallListTagsForResource{ { - I: &docdb.ListTagsForResourceInput{ResourceName: pointer.String(testDBInstanceArn)}, + I: &docdb.ListTagsForResourceInput{ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn)}, }, }, }, @@ -651,23 +652,23 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateAvailable), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateAvailable), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, }, }}, nil }, MockListTagsForResource: func(ltfri *docdb.ListTagsForResourceInput) (*docdb.ListTagsForResourceOutput, error) { return &docdb.ListTagsForResourceOutput{TagList: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, }}, nil }, }, cr: instance( withExternalName(testDBIdentifier), withDBIdentifier(testDBIdentifier), - withTags(&svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}), + withTags(&svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}), ), }, want: want{ @@ -678,10 +679,10 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateAvailable), withConditions(xpv1.Available()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), - withTags(&svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}), + withTags(&svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}), ), result: managed.ExternalObservation{ ResourceExists: true, @@ -702,7 +703,7 @@ func TestObserve(t *testing.T) { ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, }, @@ -715,9 +716,9 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateFailed), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateFailed), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }}, nil }, @@ -756,7 +757,7 @@ func TestObserve(t *testing.T) { ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, }, @@ -769,10 +770,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateFailed), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - AvailabilityZone: pointer.String(testAvailabilityZone), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateFailed), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + AvailabilityZone: pointer.ToOrNilIfZeroValue(testAvailabilityZone), }, }}, nil }, @@ -793,8 +794,8 @@ func TestObserve(t *testing.T) { withConditions(xpv1.Unavailable()), withStatus(svcapitypes.DocDBInstanceStateFailed), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withAvailabilityZone(testOtherAvailabilityZone), ), @@ -828,10 +829,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateFailed), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - AutoMinorVersionUpgrade: pointer.Bool(true), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateFailed), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + AutoMinorVersionUpgrade: pointer.ToOrNilIfZeroValue(true), }, }}, nil }, @@ -852,8 +853,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateFailed), withConditions(xpv1.Unavailable()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withAutoMinorVersionUpgrade(false), ), @@ -882,10 +883,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateFailed), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - CACertificateIdentifier: pointer.String(testCACertificateIdentifier), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateFailed), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + CACertificateIdentifier: pointer.ToOrNilIfZeroValue(testCACertificateIdentifier), }, }}, nil }, @@ -906,8 +907,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateFailed), withConditions(xpv1.Unavailable()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withCACertificateIdentifier(testOtherCACertificateIdentifier), withStatusCACertificateIdentifier(testCACertificateIdentifier), @@ -937,10 +938,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateFailed), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - DBInstanceClass: pointer.String(testDBInstanceClass), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateFailed), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + DBInstanceClass: pointer.ToOrNilIfZeroValue(testDBInstanceClass), }, }}, nil }, @@ -961,8 +962,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateFailed), withConditions(xpv1.Unavailable()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withDBInstanceClass(testOtherDBInstanceClass), ), @@ -991,10 +992,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateFailed), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - PreferredMaintenanceWindow: pointer.String(testPreferredMaintenanceWindow), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateFailed), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(testPreferredMaintenanceWindow), }, }}, nil }, @@ -1015,8 +1016,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateFailed), withConditions(xpv1.Unavailable()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withPreferredMaintenanceWindow(testOtherPreferredMaintenanceWindow), ), @@ -1045,10 +1046,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateFailed), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - PromotionTier: pointer.Int64(testPromotionTier), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateFailed), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + PromotionTier: pointer.ToIntAsInt64(testPromotionTier), }, }}, nil }, @@ -1069,8 +1070,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateFailed), withConditions(xpv1.Unavailable()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withPromotionTier(testOtherPromotionTier), ), @@ -1099,23 +1100,23 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateFailed), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateFailed), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, }, }}, nil }, MockListTagsForResource: func(ltfri *docdb.ListTagsForResourceInput) (*docdb.ListTagsForResourceOutput, error) { return &docdb.ListTagsForResourceOutput{TagList: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, }}, nil }, }, cr: instance( withExternalName(testDBIdentifier), withDBIdentifier(testDBIdentifier), - withTags(&svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}), + withTags(&svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}), ), }, want: want{ @@ -1126,10 +1127,10 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateFailed), withConditions(xpv1.Unavailable()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), - withTags(&svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}), + withTags(&svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}), ), result: managed.ExternalObservation{ ResourceExists: true, @@ -1150,7 +1151,7 @@ func TestObserve(t *testing.T) { ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, }, @@ -1163,23 +1164,23 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateFailed), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateFailed), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, }, }}, nil }, MockListTagsForResource: func(ltfri *docdb.ListTagsForResourceInput) (*docdb.ListTagsForResourceOutput, error) { return &docdb.ListTagsForResourceOutput{TagList: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, }}, nil }, }, cr: instance( withExternalName(testDBIdentifier), withDBIdentifier(testDBIdentifier), - withTags(&svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}), + withTags(&svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}), ), }, want: want{ @@ -1190,10 +1191,10 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateFailed), withConditions(xpv1.Unavailable()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), - withTags(&svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}), + withTags(&svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}), ), result: managed.ExternalObservation{ ResourceExists: true, @@ -1214,7 +1215,7 @@ func TestObserve(t *testing.T) { ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, }, @@ -1227,9 +1228,9 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateDeleting), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateDeleting), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }}, nil }, @@ -1268,7 +1269,7 @@ func TestObserve(t *testing.T) { ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, }, @@ -1281,10 +1282,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateDeleting), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - AvailabilityZone: pointer.String(testAvailabilityZone), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateDeleting), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + AvailabilityZone: pointer.ToOrNilIfZeroValue(testAvailabilityZone), }, }}, nil }, @@ -1305,8 +1306,8 @@ func TestObserve(t *testing.T) { withConditions(xpv1.Deleting()), withStatus(svcapitypes.DocDBInstanceStateDeleting), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withAvailabilityZone(testOtherAvailabilityZone), ), @@ -1340,10 +1341,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateDeleting), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - AutoMinorVersionUpgrade: pointer.Bool(true), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateDeleting), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + AutoMinorVersionUpgrade: pointer.ToOrNilIfZeroValue(true), }, }}, nil }, @@ -1364,8 +1365,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateDeleting), withConditions(xpv1.Deleting()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withAutoMinorVersionUpgrade(false), ), @@ -1394,10 +1395,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateDeleting), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - CACertificateIdentifier: pointer.String(testCACertificateIdentifier), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateDeleting), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + CACertificateIdentifier: pointer.ToOrNilIfZeroValue(testCACertificateIdentifier), }, }}, nil }, @@ -1418,8 +1419,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateDeleting), withConditions(xpv1.Deleting()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withCACertificateIdentifier(testOtherCACertificateIdentifier), withStatusCACertificateIdentifier(testCACertificateIdentifier), @@ -1449,10 +1450,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateDeleting), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - DBInstanceClass: pointer.String(testDBInstanceClass), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateDeleting), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + DBInstanceClass: pointer.ToOrNilIfZeroValue(testDBInstanceClass), }, }}, nil }, @@ -1473,8 +1474,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateDeleting), withConditions(xpv1.Deleting()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withDBInstanceClass(testOtherDBInstanceClass), ), @@ -1503,10 +1504,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateDeleting), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - PreferredMaintenanceWindow: pointer.String(testPreferredMaintenanceWindow), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateDeleting), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(testPreferredMaintenanceWindow), }, }}, nil }, @@ -1527,8 +1528,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateDeleting), withConditions(xpv1.Deleting()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withPreferredMaintenanceWindow(testOtherPreferredMaintenanceWindow), ), @@ -1557,10 +1558,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateDeleting), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - PromotionTier: pointer.Int64(testPromotionTier), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateDeleting), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + PromotionTier: pointer.ToIntAsInt64(testPromotionTier), }, }}, nil }, @@ -1581,8 +1582,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateDeleting), withConditions(xpv1.Deleting()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withPromotionTier(testOtherPromotionTier), ), @@ -1611,23 +1612,23 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateDeleting), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateDeleting), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, }, }}, nil }, MockListTagsForResource: func(ltfri *docdb.ListTagsForResourceInput) (*docdb.ListTagsForResourceOutput, error) { return &docdb.ListTagsForResourceOutput{TagList: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, }}, nil }, }, cr: instance( withExternalName(testDBIdentifier), withDBIdentifier(testDBIdentifier), - withTags(&svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}), + withTags(&svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}), ), }, want: want{ @@ -1638,10 +1639,10 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateDeleting), withConditions(xpv1.Deleting()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), - withTags(&svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}), + withTags(&svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}), ), result: managed.ExternalObservation{ ResourceExists: true, @@ -1662,7 +1663,7 @@ func TestObserve(t *testing.T) { ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, }, @@ -1675,23 +1676,23 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateDeleting), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateDeleting), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, }, }}, nil }, MockListTagsForResource: func(ltfri *docdb.ListTagsForResourceInput) (*docdb.ListTagsForResourceOutput, error) { return &docdb.ListTagsForResourceOutput{TagList: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, }}, nil }, }, cr: instance( withExternalName(testDBIdentifier), withDBIdentifier(testDBIdentifier), - withTags(&svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}), + withTags(&svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}), ), }, want: want{ @@ -1702,10 +1703,10 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateDeleting), withConditions(xpv1.Deleting()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), - withTags(&svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}), + withTags(&svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}), ), result: managed.ExternalObservation{ ResourceExists: true, @@ -1726,7 +1727,7 @@ func TestObserve(t *testing.T) { ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, }, @@ -1739,9 +1740,9 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateCreating), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateCreating), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }}, nil }, @@ -1780,7 +1781,7 @@ func TestObserve(t *testing.T) { ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, }, @@ -1793,10 +1794,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateCreating), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - AvailabilityZone: pointer.String(testAvailabilityZone), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateCreating), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + AvailabilityZone: pointer.ToOrNilIfZeroValue(testAvailabilityZone), }, }}, nil }, @@ -1817,8 +1818,8 @@ func TestObserve(t *testing.T) { withConditions(xpv1.Creating()), withStatus(svcapitypes.DocDBInstanceStateCreating), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withAvailabilityZone(testOtherAvailabilityZone), ), @@ -1852,10 +1853,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateCreating), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - AutoMinorVersionUpgrade: pointer.Bool(true), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateCreating), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + AutoMinorVersionUpgrade: pointer.ToOrNilIfZeroValue(true), }, }}, nil }, @@ -1876,8 +1877,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateCreating), withConditions(xpv1.Creating()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withAutoMinorVersionUpgrade(false), ), @@ -1906,10 +1907,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateCreating), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - CACertificateIdentifier: pointer.String(testCACertificateIdentifier), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateCreating), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + CACertificateIdentifier: pointer.ToOrNilIfZeroValue(testCACertificateIdentifier), }, }}, nil }, @@ -1930,8 +1931,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateCreating), withConditions(xpv1.Creating()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withCACertificateIdentifier(testOtherCACertificateIdentifier), withStatusCACertificateIdentifier(testCACertificateIdentifier), @@ -1961,10 +1962,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateCreating), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - DBInstanceClass: pointer.String(testDBInstanceClass), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateCreating), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + DBInstanceClass: pointer.ToOrNilIfZeroValue(testDBInstanceClass), }, }}, nil }, @@ -1985,8 +1986,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateCreating), withConditions(xpv1.Creating()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withDBInstanceClass(testOtherDBInstanceClass), ), @@ -2015,10 +2016,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateCreating), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - PreferredMaintenanceWindow: pointer.String(testPreferredMaintenanceWindow), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateCreating), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(testPreferredMaintenanceWindow), }, }}, nil }, @@ -2039,8 +2040,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateCreating), withConditions(xpv1.Creating()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withPreferredMaintenanceWindow(testOtherPreferredMaintenanceWindow), ), @@ -2069,10 +2070,10 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateCreating), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, - PromotionTier: pointer.Int64(testPromotionTier), + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateCreating), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, + PromotionTier: pointer.ToIntAsInt64(testPromotionTier), }, }}, nil }, @@ -2093,8 +2094,8 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateCreating), withConditions(xpv1.Creating()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), withPromotionTier(testOtherPromotionTier), ), @@ -2123,23 +2124,23 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateCreating), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateCreating), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, }, }}, nil }, MockListTagsForResource: func(ltfri *docdb.ListTagsForResourceInput) (*docdb.ListTagsForResourceOutput, error) { return &docdb.ListTagsForResourceOutput{TagList: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, }}, nil }, }, cr: instance( withExternalName(testDBIdentifier), withDBIdentifier(testDBIdentifier), - withTags(&svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}), + withTags(&svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}), ), }, want: want{ @@ -2150,10 +2151,10 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateCreating), withConditions(xpv1.Creating()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), - withTags(&svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}), + withTags(&svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}), ), result: managed.ExternalObservation{ ResourceExists: true, @@ -2173,7 +2174,7 @@ func TestObserve(t *testing.T) { }, ListTagsForResource: []*fake.CallListTagsForResource{ { - I: &docdb.ListTagsForResourceInput{ResourceName: pointer.String(testDBInstanceArn)}, + I: &docdb.ListTagsForResourceInput{ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn)}, }, }, }, @@ -2185,23 +2186,23 @@ func TestObserve(t *testing.T) { MockDescribeDBInstancesWithContext: func(c context.Context, ddi *docdb.DescribeDBInstancesInput, o []request.Option) (*docdb.DescribeDBInstancesOutput, error) { return &docdb.DescribeDBInstancesOutput{DBInstances: []*docdb.DBInstance{ { - DBInstanceStatus: pointer.String(svcapitypes.DocDBInstanceStateCreating), - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), - Endpoint: &docdb.Endpoint{Address: pointer.String(testAddress), Port: pointer.Int64(testPort)}, + DBInstanceStatus: pointer.ToOrNilIfZeroValue(svcapitypes.DocDBInstanceStateCreating), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), + Endpoint: &docdb.Endpoint{Address: pointer.ToOrNilIfZeroValue(testAddress), Port: pointer.ToIntAsInt64(testPort)}, }, }}, nil }, MockListTagsForResource: func(ltfri *docdb.ListTagsForResourceInput) (*docdb.ListTagsForResourceOutput, error) { return &docdb.ListTagsForResourceOutput{TagList: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, }}, nil }, }, cr: instance( withExternalName(testDBIdentifier), withDBIdentifier(testDBIdentifier), - withTags(&svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}), + withTags(&svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}), ), }, want: want{ @@ -2212,10 +2213,10 @@ func TestObserve(t *testing.T) { withStatus(svcapitypes.DocDBInstanceStateCreating), withConditions(xpv1.Creating()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + Port: pointer.ToIntAsInt64(testPort), }), - withTags(&svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}), + withTags(&svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}), ), result: managed.ExternalObservation{ ResourceExists: true, @@ -2236,7 +2237,7 @@ func TestObserve(t *testing.T) { ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, }, @@ -2349,17 +2350,17 @@ func TestCreate(t *testing.T) { MockCreateDBInstanceWithContext: func(c context.Context, cdi *docdb.CreateDBInstanceInput, opts []request.Option) (*docdb.CreateDBInstanceOutput, error) { return &docdb.CreateDBInstanceOutput{ DBInstance: &docdb.DBInstance{ - AutoMinorVersionUpgrade: pointer.Bool(true), + AutoMinorVersionUpgrade: pointer.ToOrNilIfZeroValue(true), AvailabilityZone: &testAvailabilityZone, DBInstanceClass: &testDBInstanceClass, - DBInstanceIdentifier: pointer.String(testDBIdentifier), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), Endpoint: &docdb.Endpoint{ - Address: pointer.String(testAddress), - HostedZoneId: pointer.String(testHostedZone), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + HostedZoneId: pointer.ToOrNilIfZeroValue(testHostedZone), + Port: pointer.ToIntAsInt64(testPort), }, PreferredMaintenanceWindow: &testPreferredMaintenanceWindow, - PromotionTier: pointer.Int64(testPromotionTier), + PromotionTier: pointer.ToIntAsInt64(testPromotionTier), }, }, nil }, @@ -2386,9 +2387,9 @@ func TestCreate(t *testing.T) { withPromotionTier(testPromotionTier), withConditions(xpv1.Creating()), withEndpoint(&svcapitypes.Endpoint{ - Address: pointer.String(testAddress), - HostedZoneID: pointer.String(testHostedZone), - Port: pointer.Int64(testPort), + Address: pointer.ToOrNilIfZeroValue(testAddress), + HostedZoneID: pointer.ToOrNilIfZeroValue(testHostedZone), + Port: pointer.ToIntAsInt64(testPort), }), ), result: managed.ExternalCreation{ @@ -2399,12 +2400,12 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &docdb.CreateDBInstanceInput{ - DBInstanceIdentifier: pointer.String(testDBIdentifier), - AutoMinorVersionUpgrade: pointer.Bool(true), - AvailabilityZone: pointer.String(testAvailabilityZone), - DBInstanceClass: pointer.String(testDBInstanceClass), - PreferredMaintenanceWindow: pointer.String(testPreferredMaintenanceWindow), - PromotionTier: pointer.Int64(testPromotionTier), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + AutoMinorVersionUpgrade: pointer.ToOrNilIfZeroValue(true), + AvailabilityZone: pointer.ToOrNilIfZeroValue(testAvailabilityZone), + DBInstanceClass: pointer.ToOrNilIfZeroValue(testDBInstanceClass), + PreferredMaintenanceWindow: pointer.ToOrNilIfZeroValue(testPreferredMaintenanceWindow), + PromotionTier: pointer.ToIntAsInt64(testPromotionTier), }, }, }, @@ -2436,7 +2437,7 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &docdb.CreateDBInstanceInput{ - DBInstanceIdentifier: pointer.String(testDBIdentifier), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), }, }, }, @@ -2484,7 +2485,7 @@ func TestDelete(t *testing.T) { MockDeleteDBInstanceWithContext: func(c context.Context, ddi *docdb.DeleteDBInstanceInput, o []request.Option) (*docdb.DeleteDBInstanceOutput, error) { return &docdb.DeleteDBInstanceOutput{ DBInstance: &docdb.DBInstance{ - DBInstanceIdentifier: pointer.String(testDBIdentifier), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), }, }, nil }, @@ -2505,7 +2506,7 @@ func TestDelete(t *testing.T) { { Ctx: context.Background(), I: &docdb.DeleteDBInstanceInput{ - DBInstanceIdentifier: pointer.String(testDBIdentifier), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), }, }, }, @@ -2536,7 +2537,7 @@ func TestDelete(t *testing.T) { { Ctx: context.Background(), I: &docdb.DeleteDBInstanceInput{ - DBInstanceIdentifier: pointer.String(testDBIdentifier), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), }, }, }, @@ -2582,8 +2583,8 @@ func TestUpdate(t *testing.T) { MockModifyDBInstanceWithContext: func(c context.Context, mdi *docdb.ModifyDBInstanceInput, o []request.Option) (*docdb.ModifyDBInstanceOutput, error) { return &docdb.ModifyDBInstanceOutput{ DBInstance: &docdb.DBInstance{ - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, nil }, @@ -2609,14 +2610,14 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &docdb.ModifyDBInstanceInput{ - DBInstanceIdentifier: pointer.String(testDBIdentifier), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), }, }, }, ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, }, @@ -2629,15 +2630,15 @@ func TestUpdate(t *testing.T) { MockModifyDBInstanceWithContext: func(c context.Context, mdi *docdb.ModifyDBInstanceInput, o []request.Option) (*docdb.ModifyDBInstanceOutput, error) { return &docdb.ModifyDBInstanceOutput{ DBInstance: &docdb.DBInstance{ - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, nil }, MockListTagsForResource: func(ltfri *docdb.ListTagsForResourceInput) (*docdb.ListTagsForResourceOutput, error) { return &docdb.ListTagsForResourceOutput{ TagList: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, }, }, nil }, @@ -2646,7 +2647,7 @@ func TestUpdate(t *testing.T) { withDBIdentifier(testDBIdentifier), withExternalName(testDBIdentifier), withDBInstanceArn(testDBInstanceArn), - withTags(&svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}), + withTags(&svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}), ), }, want: want{ @@ -2654,7 +2655,7 @@ func TestUpdate(t *testing.T) { withDBIdentifier(testDBIdentifier), withExternalName(testDBIdentifier), withDBInstanceArn(testDBInstanceArn), - withTags(&svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}), + withTags(&svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}), ), result: managed.ExternalUpdate{}, docdb: fake.MockDocDBClientCall{ @@ -2662,14 +2663,14 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &docdb.ModifyDBInstanceInput{ - DBInstanceIdentifier: pointer.String(testDBIdentifier), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), }, }, }, ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, }, @@ -2682,15 +2683,15 @@ func TestUpdate(t *testing.T) { MockModifyDBInstanceWithContext: func(c context.Context, mdi *docdb.ModifyDBInstanceInput, o []request.Option) (*docdb.ModifyDBInstanceOutput, error) { return &docdb.ModifyDBInstanceOutput{ DBInstance: &docdb.DBInstance{ - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, nil }, MockListTagsForResource: func(ltfri *docdb.ListTagsForResourceInput) (*docdb.ListTagsForResourceOutput, error) { return &docdb.ListTagsForResourceOutput{ TagList: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, }, }, nil }, @@ -2703,8 +2704,8 @@ func TestUpdate(t *testing.T) { withExternalName(testDBIdentifier), withDBInstanceArn(testDBInstanceArn), withTags( - &svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - &svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, ), ), }, @@ -2714,8 +2715,8 @@ func TestUpdate(t *testing.T) { withExternalName(testDBIdentifier), withDBInstanceArn(testDBInstanceArn), withTags( - &svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, - &svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, ), ), result: managed.ExternalUpdate{}, @@ -2724,23 +2725,23 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &docdb.ModifyDBInstanceInput{ - DBInstanceIdentifier: pointer.String(testDBIdentifier), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), }, }, }, ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, }, AddTagsToResource: []*fake.CallAddTagsToResource{ { I: &docdb.AddTagsToResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), Tags: []*docdb.Tag{ - {Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, }, }, }, @@ -2754,15 +2755,15 @@ func TestUpdate(t *testing.T) { MockModifyDBInstanceWithContext: func(c context.Context, mdi *docdb.ModifyDBInstanceInput, o []request.Option) (*docdb.ModifyDBInstanceOutput, error) { return &docdb.ModifyDBInstanceOutput{ DBInstance: &docdb.DBInstance{ - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, nil }, MockListTagsForResource: func(ltfri *docdb.ListTagsForResourceInput) (*docdb.ListTagsForResourceOutput, error) { return &docdb.ListTagsForResourceOutput{ TagList: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, }, }, nil }, @@ -2788,22 +2789,22 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &docdb.ModifyDBInstanceInput{ - DBInstanceIdentifier: pointer.String(testDBIdentifier), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), }, }, }, ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, }, RemoveTagsFromResource: []*fake.CallRemoveTagsFromResource{ { I: &docdb.RemoveTagsFromResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), - TagKeys: []*string{pointer.String(testTagKey)}, + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), + TagKeys: []*string{pointer.ToOrNilIfZeroValue(testTagKey)}, }, }, }, @@ -2816,15 +2817,15 @@ func TestUpdate(t *testing.T) { MockModifyDBInstanceWithContext: func(c context.Context, mdi *docdb.ModifyDBInstanceInput, o []request.Option) (*docdb.ModifyDBInstanceOutput, error) { return &docdb.ModifyDBInstanceOutput{ DBInstance: &docdb.DBInstance{ - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, nil }, MockListTagsForResource: func(ltfri *docdb.ListTagsForResourceInput) (*docdb.ListTagsForResourceOutput, error) { return &docdb.ListTagsForResourceOutput{ TagList: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, }, }, nil }, @@ -2840,7 +2841,7 @@ func TestUpdate(t *testing.T) { withExternalName(testDBIdentifier), withDBInstanceArn(testDBInstanceArn), withTags( - &svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, ), ), }, @@ -2850,7 +2851,7 @@ func TestUpdate(t *testing.T) { withExternalName(testDBIdentifier), withDBInstanceArn(testDBInstanceArn), withTags( - &svcapitypes.Tag{Key: pointer.String(testTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, ), ), result: managed.ExternalUpdate{}, @@ -2859,31 +2860,31 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &docdb.ModifyDBInstanceInput{ - DBInstanceIdentifier: pointer.String(testDBIdentifier), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), }, }, }, ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, }, RemoveTagsFromResource: []*fake.CallRemoveTagsFromResource{ { I: &docdb.RemoveTagsFromResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), - TagKeys: []*string{pointer.String(testTagKey)}, + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), + TagKeys: []*string{pointer.ToOrNilIfZeroValue(testTagKey)}, }, }, }, AddTagsToResource: []*fake.CallAddTagsToResource{ { I: &docdb.AddTagsToResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), Tags: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testOtherTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, }, }, }, @@ -2897,15 +2898,15 @@ func TestUpdate(t *testing.T) { MockModifyDBInstanceWithContext: func(c context.Context, mdi *docdb.ModifyDBInstanceInput, o []request.Option) (*docdb.ModifyDBInstanceOutput, error) { return &docdb.ModifyDBInstanceOutput{ DBInstance: &docdb.DBInstance{ - DBInstanceIdentifier: pointer.String(testDBIdentifier), - DBInstanceArn: pointer.String(testDBInstanceArn), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), + DBInstanceArn: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, nil }, MockListTagsForResource: func(ltfri *docdb.ListTagsForResourceInput) (*docdb.ListTagsForResourceOutput, error) { return &docdb.ListTagsForResourceOutput{ TagList: []*docdb.Tag{ - {Key: pointer.String(testTagKey), Value: pointer.String(testTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testTagKey), Value: pointer.ToOrNilIfZeroValue(testTagValue)}, }, }, nil }, @@ -2922,7 +2923,7 @@ func TestUpdate(t *testing.T) { withExternalName(testDBIdentifier), withDBInstanceArn(testDBInstanceArn), withTags( - &svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, ), ), }, @@ -2932,7 +2933,7 @@ func TestUpdate(t *testing.T) { withExternalName(testDBIdentifier), withDBInstanceArn(testDBInstanceArn), withTags( - &svcapitypes.Tag{Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, ), ), result: managed.ExternalUpdate{}, @@ -2941,31 +2942,31 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &docdb.ModifyDBInstanceInput{ - DBInstanceIdentifier: pointer.String(testDBIdentifier), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), }, }, }, ListTagsForResource: []*fake.CallListTagsForResource{ { I: &docdb.ListTagsForResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), }, }, }, RemoveTagsFromResource: []*fake.CallRemoveTagsFromResource{ { I: &docdb.RemoveTagsFromResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), - TagKeys: []*string{pointer.String(testTagKey)}, + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), + TagKeys: []*string{pointer.ToOrNilIfZeroValue(testTagKey)}, }, }, }, AddTagsToResource: []*fake.CallAddTagsToResource{ { I: &docdb.AddTagsToResourceInput{ - ResourceName: pointer.String(testDBInstanceArn), + ResourceName: pointer.ToOrNilIfZeroValue(testDBInstanceArn), Tags: []*docdb.Tag{ - {Key: pointer.String(testOtherTagKey), Value: pointer.String(testOtherTagValue)}, + {Key: pointer.ToOrNilIfZeroValue(testOtherTagKey), Value: pointer.ToOrNilIfZeroValue(testOtherTagValue)}, }, }, }, @@ -2996,7 +2997,7 @@ func TestUpdate(t *testing.T) { { Ctx: context.Background(), I: &docdb.ModifyDBInstanceInput{ - DBInstanceIdentifier: pointer.String(testDBIdentifier), + DBInstanceIdentifier: pointer.ToOrNilIfZeroValue(testDBIdentifier), }, }, }, diff --git a/pkg/controller/docdb/dbsubnetgroup/setup.go b/pkg/controller/docdb/dbsubnetgroup/setup.go index d4c46355a6..fbf43310a0 100644 --- a/pkg/controller/docdb/dbsubnetgroup/setup.go +++ b/pkg/controller/docdb/dbsubnetgroup/setup.go @@ -98,7 +98,7 @@ type hooks struct { } func preObserve(_ context.Context, cr *svcapitypes.DBSubnetGroup, obj *svcsdk.DescribeDBSubnetGroupsInput) error { - obj.DBSubnetGroupName = pointer.String(meta.GetExternalName(cr)) + obj.DBSubnetGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -144,7 +144,7 @@ func areSubnetsEqual(specSubnetIds []*string, current []*svcsdk.Subnet) bool { } func preUpdate(ctx context.Context, cr *svcapitypes.DBSubnetGroup, obj *svcsdk.ModifyDBSubnetGroupInput) error { - obj.DBSubnetGroupName = pointer.String(meta.GetExternalName(cr)) + obj.DBSubnetGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.SubnetIds = cr.Spec.ForProvider.SubnetIDs return nil } @@ -159,13 +159,13 @@ func (e *hooks) postUpdate(ctx context.Context, cr *svcapitypes.DBSubnetGroup, r } func preCreate(ctx context.Context, cr *svcapitypes.DBSubnetGroup, obj *svcsdk.CreateDBSubnetGroupInput) error { - obj.DBSubnetGroupName = pointer.String(meta.GetExternalName(cr)) + obj.DBSubnetGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.SubnetIds = cr.Spec.ForProvider.SubnetIDs return nil } func preDelete(_ context.Context, cr *svcapitypes.DBSubnetGroup, obj *svcsdk.DeleteDBSubnetGroupInput) (bool, error) { - obj.DBSubnetGroupName = pointer.String(meta.GetExternalName(cr)) + obj.DBSubnetGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } diff --git a/pkg/controller/docdb/dbsubnetgroup/setup_test.go b/pkg/controller/docdb/dbsubnetgroup/setup_test.go index d39d948d93..1c9aa35554 100644 --- a/pkg/controller/docdb/dbsubnetgroup/setup_test.go +++ b/pkg/controller/docdb/dbsubnetgroup/setup_test.go @@ -73,13 +73,13 @@ func withExternalName(value string) docDBModifier { func withDBSubnetGroupName(value string) docDBModifier { return func(o *svcapitypes.DBSubnetGroup) { - o.Status.AtProvider.DBSubnetGroupName = pointer.String(value) + o.Status.AtProvider.DBSubnetGroupName = pointer.ToOrNilIfZeroValue(value) } } func withDescription(value string) docDBModifier { return func(o *svcapitypes.DBSubnetGroup) { - o.Spec.ForProvider.DBSubnetGroupDescription = pointer.String(value) + o.Spec.ForProvider.DBSubnetGroupDescription = pointer.ToOrNilIfZeroValue(value) } } @@ -87,7 +87,7 @@ func withSubnetIds(values ...string) docDBModifier { return func(o *svcapitypes.DBSubnetGroup) { strArr := make([]*string, len(values)) for i, val := range values { - strArr[i] = pointer.String(val) + strArr[i] = pointer.ToOrNilIfZeroValue(val) } o.Spec.ForProvider.SubnetIDs = strArr } @@ -98,7 +98,7 @@ func withSubnetIDStatus(values ...string) docDBModifier { subnetArr := make([]*svcapitypes.Subnet, len(values)) for i, val := range values { subnetArr[i] = &svcapitypes.Subnet{ - SubnetIdentifier: pointer.String(val), + SubnetIdentifier: pointer.ToOrNilIfZeroValue(val), } } o.Status.AtProvider.Subnets = subnetArr @@ -130,7 +130,7 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBSubnetGroupsOutput{ DBSubnetGroups: []*docdb.DBSubnetGroup{ { - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), }, }, }, nil @@ -159,7 +159,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBSubnetGroupsInput{ - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), }, }, }, @@ -178,8 +178,8 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBSubnetGroupsOutput{ DBSubnetGroups: []*docdb.DBSubnetGroup{ { - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), - DBSubnetGroupDescription: pointer.String(testDescription), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), + DBSubnetGroupDescription: pointer.ToOrNilIfZeroValue(testDescription), }, }, }, nil @@ -207,7 +207,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBSubnetGroupsInput{ - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), }, }, }, @@ -221,9 +221,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBSubnetGroupsOutput{ DBSubnetGroups: []*docdb.DBSubnetGroup{ { - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), Subnets: []*docdb.Subnet{ - {SubnetIdentifier: pointer.String(testSubnetID)}, + {SubnetIdentifier: pointer.ToOrNilIfZeroValue(testSubnetID)}, }, }, }, @@ -256,7 +256,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBSubnetGroupsInput{ - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), }, }, }, @@ -275,9 +275,9 @@ func TestObserve(t *testing.T) { return &docdb.DescribeDBSubnetGroupsOutput{ DBSubnetGroups: []*docdb.DBSubnetGroup{ { - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), Subnets: []*docdb.Subnet{ - {SubnetIdentifier: pointer.String(testSubnetID)}, + {SubnetIdentifier: pointer.ToOrNilIfZeroValue(testSubnetID)}, }, }, }, @@ -307,7 +307,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBSubnetGroupsInput{ - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), }, }, }, @@ -338,7 +338,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBSubnetGroupsInput{ - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), }, }, }, @@ -373,7 +373,7 @@ func TestObserve(t *testing.T) { { Ctx: context.Background(), I: &docdb.DescribeDBSubnetGroupsInput{ - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), }, }, }, @@ -422,7 +422,7 @@ func TestCreate(t *testing.T) { MockCreateDBSubnetGroupWithContext: func(c context.Context, cdgi *docdb.CreateDBSubnetGroupInput, o []request.Option) (*docdb.CreateDBSubnetGroupOutput, error) { return &docdb.CreateDBSubnetGroupOutput{ DBSubnetGroup: &docdb.DBSubnetGroup{ - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), }, }, nil }, @@ -444,7 +444,7 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &docdb.CreateDBSubnetGroupInput{ - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), }, }, }, @@ -476,7 +476,7 @@ func TestCreate(t *testing.T) { { Ctx: context.Background(), I: &docdb.CreateDBSubnetGroupInput{ - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), }, }, }, @@ -541,7 +541,7 @@ func TestDelete(t *testing.T) { { Ctx: context.Background(), I: &docdb.DeleteDBSubnetGroupInput{ - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), }, }, }, @@ -572,7 +572,7 @@ func TestDelete(t *testing.T) { { Ctx: context.Background(), I: &docdb.DeleteDBSubnetGroupInput{ - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), }, }, }, @@ -618,7 +618,7 @@ func TestModify(t *testing.T) { MockModifyDBSubnetGroupWithContext: func(c context.Context, mdgi *docdb.ModifyDBSubnetGroupInput, o []request.Option) (*docdb.ModifyDBSubnetGroupOutput, error) { return &docdb.ModifyDBSubnetGroupOutput{ DBSubnetGroup: &docdb.DBSubnetGroup{ - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), }, }, nil }, @@ -645,8 +645,8 @@ func TestModify(t *testing.T) { { Ctx: context.Background(), I: &docdb.ModifyDBSubnetGroupInput{ - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), - DBSubnetGroupDescription: pointer.String(testDescription), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), + DBSubnetGroupDescription: pointer.ToOrNilIfZeroValue(testDescription), }, }, }, @@ -664,9 +664,9 @@ func TestModify(t *testing.T) { MockModifyDBSubnetGroupWithContext: func(c context.Context, mdgi *docdb.ModifyDBSubnetGroupInput, o []request.Option) (*docdb.ModifyDBSubnetGroupOutput, error) { return &docdb.ModifyDBSubnetGroupOutput{ DBSubnetGroup: &docdb.DBSubnetGroup{ - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), Subnets: []*docdb.Subnet{ - {SubnetIdentifier: pointer.String(testSubnetID)}, + {SubnetIdentifier: pointer.ToOrNilIfZeroValue(testSubnetID)}, }, }, }, nil @@ -694,9 +694,9 @@ func TestModify(t *testing.T) { { Ctx: context.Background(), I: &docdb.ModifyDBSubnetGroupInput{ - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), SubnetIds: []*string{ - pointer.String(testSubnetID), + pointer.ToOrNilIfZeroValue(testSubnetID), }, }, }, @@ -733,7 +733,7 @@ func TestModify(t *testing.T) { { Ctx: context.Background(), I: &docdb.ModifyDBSubnetGroupInput{ - DBSubnetGroupName: pointer.String(testDBSubnetGroupName), + DBSubnetGroupName: pointer.ToOrNilIfZeroValue(testDBSubnetGroupName), }, }, }, diff --git a/pkg/controller/docdb/utils/tags.go b/pkg/controller/docdb/utils/tags.go index 77d6797dc6..7fbd7ea789 100644 --- a/pkg/controller/docdb/utils/tags.go +++ b/pkg/controller/docdb/utils/tags.go @@ -105,14 +105,14 @@ func DiffTags(spec []*svcapitypes.Tag, current []*svcsdk.Tag) (addTags []*svcsdk if currentVal != val { removeTags = append(removeTags, t.Key) addTags = append(addTags, &svcsdk.Tag{ - Key: pointer.String(key), - Value: pointer.String(val), + Key: pointer.ToOrNilIfZeroValue(key), + Value: pointer.ToOrNilIfZeroValue(val), }) } } else { addTags = append(addTags, &svcsdk.Tag{ - Key: pointer.String(key), - Value: pointer.String(val), + Key: pointer.ToOrNilIfZeroValue(key), + Value: pointer.ToOrNilIfZeroValue(val), }) } } @@ -120,7 +120,7 @@ func DiffTags(spec []*svcapitypes.Tag, current []*svcsdk.Tag) (addTags []*svcsdk for _, t := range current { key := pointer.StringValue(t.Key) if _, exists := specMap[key]; !exists { - removeTags = append(removeTags, pointer.String(key)) + removeTags = append(removeTags, pointer.ToOrNilIfZeroValue(key)) } } @@ -148,7 +148,7 @@ func AddExternalTags(mg resource.Managed, spec []*svcapitypes.Tag) []*svcapitype func GetExternalTags(mg resource.Managed) []*svcapitypes.Tag { externalTags := []*svcapitypes.Tag{} for k, v := range resource.GetExternalTags(mg) { - externalTags = append(externalTags, &svcapitypes.Tag{Key: pointer.String(k), Value: pointer.String(v)}) + externalTags = append(externalTags, &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(k), Value: pointer.ToOrNilIfZeroValue(v)}) } sort.Slice(externalTags, func(i, j int) bool { diff --git a/pkg/controller/dynamodb/table/hooks.go b/pkg/controller/dynamodb/table/hooks.go index 09382d6e58..5aa6b3acb3 100644 --- a/pkg/controller/dynamodb/table/hooks.go +++ b/pkg/controller/dynamodb/table/hooks.go @@ -130,7 +130,7 @@ func (c *customConnector) Connect(ctx context.Context, mg cpresource.Managed) (m func (e *updateClient) postUpdate(_ context.Context, cr *svcapitypes.Table, obj *svcsdk.UpdateTableOutput, _ managed.ExternalUpdate, _ error) (managed.ExternalUpdate, error) { cbresult, err := e.client.DescribeContinuousBackups(&svcsdk.DescribeContinuousBackupsInput{ - TableName: pointer.String(meta.GetExternalName(cr)), + TableName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) if err != nil { return managed.ExternalUpdate{}, err @@ -142,7 +142,7 @@ func (e *updateClient) postUpdate(_ context.Context, cr *svcapitypes.Table, obj pitrSpecEnabled := ptr.Deref(cr.Spec.ForProvider.PointInTimeRecoveryEnabled, false) pitrInput := &svcsdk.UpdateContinuousBackupsInput{ - TableName: pointer.String(meta.GetExternalName(cr)), + TableName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), PointInTimeRecoverySpecification: (&svcsdk.PointInTimeRecoverySpecification{ PointInTimeRecoveryEnabled: &pitrSpecEnabled, }), @@ -158,16 +158,16 @@ func (e *updateClient) postUpdate(_ context.Context, cr *svcapitypes.Table, obj } func preObserve(_ context.Context, cr *svcapitypes.Table, obj *svcsdk.DescribeTableInput) error { - obj.TableName = pointer.String(meta.GetExternalName(cr)) + obj.TableName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } func preCreate(_ context.Context, cr *svcapitypes.Table, obj *svcsdk.CreateTableInput) error { - obj.TableName = pointer.String(meta.GetExternalName(cr)) + obj.TableName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } func preDelete(_ context.Context, cr *svcapitypes.Table, obj *svcsdk.DeleteTableInput) (bool, error) { - obj.TableName = pointer.String(meta.GetExternalName(cr)) + obj.TableName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } @@ -228,7 +228,7 @@ func (e *tagger) Initialize(ctx context.Context, mg resource.Managed) error { } tags := make([]*svcapitypes.Tag, 0) for k, v := range tagMap { - tags = append(tags, &svcapitypes.Tag{Key: pointer.String(k), Value: pointer.String(v)}) + tags = append(tags, &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(k), Value: pointer.ToOrNilIfZeroValue(v)}) } sort.Slice(tags, func(i, j int) bool { return pointer.StringValue(tags[i].Key) < pointer.StringValue(tags[j].Key) @@ -269,7 +269,7 @@ func lateInitialize(in *svcapitypes.TableParameters, t *svcsdk.DescribeTableOutp // in our IsUpToDate logic which would otherwise detect a diff // between our desired state (PROVISIONED) and the actual state // (unspecified). - in.BillingMode = pointer.String(svcsdk.BillingModeProvisioned) + in.BillingMode = pointer.ToOrNilIfZeroValue(svcsdk.BillingModeProvisioned) if t.Table.BillingModeSummary != nil { in.BillingMode = t.Table.BillingModeSummary.BillingMode } @@ -285,7 +285,7 @@ func lateInitialize(in *svcapitypes.TableParameters, t *svcsdk.DescribeTableOutp in.SSESpecification = &svcapitypes.SSESpecification{} } if in.SSESpecification.Enabled == nil && t.Table.SSEDescription.Status != nil { - in.SSESpecification.Enabled = pointer.Bool(*t.Table.SSEDescription.Status == string(svcapitypes.SSEStatus_ENABLED)) + in.SSESpecification.Enabled = pointer.ToOrNilIfZeroValue(*t.Table.SSEDescription.Status == string(svcapitypes.SSEStatus_ENABLED)) } if in.SSESpecification.KMSMasterKeyID == nil && t.Table.SSEDescription.KMSMasterKeyArn != nil { in.SSESpecification.KMSMasterKeyID = t.Table.SSEDescription.KMSMasterKeyArn @@ -299,7 +299,7 @@ func lateInitialize(in *svcapitypes.TableParameters, t *svcsdk.DescribeTableOutp // avoid IsUpToDate thinking it needs to explicitly make an // update to set StreamEnabled to false. DescribeTableOutput // omits StreamSpecification entirely when it's not enabled. - in.StreamSpecification = &svcapitypes.StreamSpecification{StreamEnabled: pointer.Bool(false, pointer.FieldRequired)} + in.StreamSpecification = &svcapitypes.StreamSpecification{StreamEnabled: ptr.To(false)} if t.Table.StreamSpecification != nil { in.StreamSpecification = &svcapitypes.StreamSpecification{ StreamEnabled: t.Table.StreamSpecification.StreamEnabled, @@ -490,7 +490,7 @@ func (e *updateClient) isUpToDate(ctx context.Context, cr *svcapitypes.Table, re // point in time recovery status cbresult, err := e.client.DescribeContinuousBackupsWithContext(ctx, &svcsdk.DescribeContinuousBackupsInput{ - TableName: pointer.String(meta.GetExternalName(cr)), + TableName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) if err != nil { return false, "", err @@ -516,7 +516,7 @@ type updateClient struct { func (e *updateClient) preUpdate(ctx context.Context, cr *svcapitypes.Table, u *svcsdk.UpdateTableInput) error { filtered := &svcsdk.UpdateTableInput{ - TableName: pointer.String(meta.GetExternalName(cr)), + TableName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), AttributeDefinitions: u.AttributeDefinitions, } @@ -532,7 +532,7 @@ func (e *updateClient) preUpdate(ctx context.Context, cr *svcapitypes.Table, u * // the observed state in a cache during postObserve then read it here, // but we typically prefer to be as stateless as possible even if it // means redundant API calls. - out, err := e.client.DescribeTableWithContext(ctx, &svcsdk.DescribeTableInput{TableName: pointer.String(meta.GetExternalName(cr))}) + out, err := e.client.DescribeTableWithContext(ctx, &svcsdk.DescribeTableInput{TableName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))}) if err != nil { return errorutils.Wrap(err, errDescribe) } diff --git a/pkg/controller/ec2/flowlog/setup.go b/pkg/controller/ec2/flowlog/setup.go index 02f4e003c6..e4a776fc67 100644 --- a/pkg/controller/ec2/flowlog/setup.go +++ b/pkg/controller/ec2/flowlog/setup.go @@ -265,10 +265,10 @@ func DiffTags(spec []svcapitypes.Tag, current []*svcsdk.Tag) (addTags []*svcsdk. removeMap[pointer.StringValue(t.Key)] = pointer.StringValue(t.Value) } for k, v := range addMap { - addTags = append(addTags, &svcsdk.Tag{Key: pointer.String(k), Value: pointer.String(v)}) + addTags = append(addTags, &svcsdk.Tag{Key: pointer.ToOrNilIfZeroValue(k), Value: pointer.ToOrNilIfZeroValue(v)}) } for k, v := range removeMap { - remove = append(remove, &svcsdk.Tag{Key: pointer.String(k), Value: pointer.String(v)}) + remove = append(remove, &svcsdk.Tag{Key: pointer.ToOrNilIfZeroValue(k), Value: pointer.ToOrNilIfZeroValue(v)}) } return } @@ -277,7 +277,7 @@ func (u *updater) updateTags(ctx context.Context, cr *svcapitypes.FlowLog, addTa if len(removeTags) > 0 { inputR := &svcsdk.DeleteTagsInput{ - Resources: pointer.StringSliceToPtr([]string{meta.GetExternalName(cr)}), + Resources: pointer.SliceValueToPtr([]string{meta.GetExternalName(cr)}), Tags: removeTags, } @@ -288,7 +288,7 @@ func (u *updater) updateTags(ctx context.Context, cr *svcapitypes.FlowLog, addTa } if len(addTags) > 0 { inputC := &svcsdk.CreateTagsInput{ - Resources: pointer.StringSliceToPtr([]string{meta.GetExternalName(cr)}), + Resources: pointer.SliceValueToPtr([]string{meta.GetExternalName(cr)}), Tags: addTags, } diff --git a/pkg/controller/ec2/volume/setup.go b/pkg/controller/ec2/volume/setup.go index 845154171c..41fa0be7ad 100644 --- a/pkg/controller/ec2/volume/setup.go +++ b/pkg/controller/ec2/volume/setup.go @@ -75,7 +75,7 @@ func SetupVolume(mgr ctrl.Manager, o controller.Options) error { } func filterList(cr *svcapitypes.Volume, obj *svcsdk.DescribeVolumesOutput) *svcsdk.DescribeVolumesOutput { - volumeIdentifier := pointer.String(meta.GetExternalName(cr)) + volumeIdentifier := pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) resp := &svcsdk.DescribeVolumesOutput{} for _, volume := range obj.Volumes { if pointer.StringValue(volume.VolumeId) == pointer.StringValue(volumeIdentifier) { @@ -88,7 +88,7 @@ func filterList(cr *svcapitypes.Volume, obj *svcsdk.DescribeVolumesOutput) *svcs func preCreate(_ context.Context, cr *svcapitypes.Volume, obj *svcsdk.CreateVolumeInput) error { obj.KmsKeyId = cr.Spec.ForProvider.KMSKeyID - obj.ClientToken = pointer.String(string(cr.UID)) + obj.ClientToken = pointer.ToOrNilIfZeroValue(string(cr.UID)) return nil } diff --git a/pkg/controller/ec2/vpcendpoint/setup.go b/pkg/controller/ec2/vpcendpoint/setup.go index 54580723b9..80822fecea 100644 --- a/pkg/controller/ec2/vpcendpoint/setup.go +++ b/pkg/controller/ec2/vpcendpoint/setup.go @@ -81,7 +81,7 @@ type custom struct { func preCreate(_ context.Context, cr *svcapitypes.VPCEndpoint, obj *svcsdk.CreateVpcEndpointInput) error { obj.VpcId = cr.Spec.ForProvider.VPCID - obj.ClientToken = pointer.String(string(cr.UID)) + obj.ClientToken = pointer.ToOrNilIfZeroValue(string(cr.UID)) // Clear SGs, RTs, and Subnets if they're empty if len(cr.Spec.ForProvider.SecurityGroupIDs) == 0 { obj.SecurityGroupIds = nil @@ -186,7 +186,7 @@ sgCompare: // preUpdate adds the mutable fields into the update request input func (e *custom) preUpdate(ctx context.Context, cr *svcapitypes.VPCEndpoint, obj *svcsdk.ModifyVpcEndpointInput) error { - obj.VpcEndpointId = pointer.String(meta.GetExternalName(cr)) + obj.VpcEndpointId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) // Add fields to upstream AWS obj.SetAddSecurityGroupIds(cr.Spec.ForProvider.SecurityGroupIDs) diff --git a/pkg/controller/ec2/vpcendpointserviceconfiguration/setup.go b/pkg/controller/ec2/vpcendpointserviceconfiguration/setup.go index ae87760dc4..b8220f04dc 100644 --- a/pkg/controller/ec2/vpcendpointserviceconfiguration/setup.go +++ b/pkg/controller/ec2/vpcendpointserviceconfiguration/setup.go @@ -111,7 +111,7 @@ func postObserve(_ context.Context, cr *svcapitypes.VPCEndpointServiceConfigurat } func preCreate(ctx context.Context, cr *svcapitypes.VPCEndpointServiceConfiguration, obj *svcsdk.CreateVpcEndpointServiceConfigurationInput) error { - obj.ClientToken = pointer.String(meta.GetExternalName(cr)) + obj.ClientToken = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.GatewayLoadBalancerArns = append(obj.GatewayLoadBalancerArns, cr.Spec.ForProvider.GatewayLoadBalancerARNs...) obj.NetworkLoadBalancerArns = append(obj.NetworkLoadBalancerArns, cr.Spec.ForProvider.NetworkLoadBalancerARNs...) @@ -164,7 +164,7 @@ func isUpToDate(_ context.Context, cr *svcapitypes.VPCEndpointServiceConfigurati func (u *updater) preUpdate(_ context.Context, cr *svcapitypes.VPCEndpointServiceConfiguration, obj *svcsdk.ModifyVpcEndpointServiceConfigurationInput) error { input := &svcsdk.DescribeVpcEndpointServiceConfigurationsInput{} - input.ServiceIds = append(input.ServiceIds, pointer.String(meta.GetExternalName(cr))) + input.ServiceIds = append(input.ServiceIds, pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))) resp, err := u.client.DescribeVpcEndpointServiceConfigurations(input) if err != nil { @@ -194,7 +194,7 @@ func (u *updater) preUpdate(_ context.Context, cr *svcapitypes.VPCEndpointServic obj.RemovePrivateDnsName = aws.Bool(true) } - obj.ServiceId = pointer.String(meta.GetExternalName(cr)) + obj.ServiceId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -208,7 +208,7 @@ func (u *updater) delete(ctx context.Context, mg cpresource.Managed) error { cr.Status.SetConditions(xpv1.Deleting()) input := &svcsdk.DeleteVpcEndpointServiceConfigurationsInput{} - input.ServiceIds = append(input.ServiceIds, pointer.String(meta.GetExternalName(cr))) + input.ServiceIds = append(input.ServiceIds, pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))) _, err := u.client.DeleteVpcEndpointServiceConfigurationsWithContext(ctx, input) return errorutils.Wrap(cpresource.Ignore(ec2.IsVPCNotFoundErr, err), errDelete) diff --git a/pkg/controller/ec2/vpcpeeringconnection/setup.go b/pkg/controller/ec2/vpcpeeringconnection/setup.go index 81813b3dc4..860da41200 100644 --- a/pkg/controller/ec2/vpcpeeringconnection/setup.go +++ b/pkg/controller/ec2/vpcpeeringconnection/setup.go @@ -111,7 +111,7 @@ func (e *custom) postObserve(ctx context.Context, cr *svcapitypes.VPCPeeringConn if pointer.StringValue(obj.VpcPeeringConnections[0].Status.Code) == "pending-acceptance" && cr.Spec.ForProvider.AcceptRequest && !meta.WasDeleted(cr) { req := svcsdk.AcceptVpcPeeringConnectionInput{ - VpcPeeringConnectionId: pointer.String(*obj.VpcPeeringConnections[0].VpcPeeringConnectionId), + VpcPeeringConnectionId: pointer.ToOrNilIfZeroValue(*obj.VpcPeeringConnections[0].VpcPeeringConnectionId), } request, _ := pc.AcceptVpcPeeringConnectionRequest(&req) err = request.Send() @@ -131,13 +131,13 @@ func (e *custom) postObserve(ctx context.Context, cr *svcapitypes.VPCPeeringConn if !reflect.DeepEqual(obj.VpcPeeringConnections[0].AccepterVpcInfo.PeeringOptions, cr.Spec.ForProvider.AccepterPeeringOptions) || !reflect.DeepEqual(obj.VpcPeeringConnections[0].RequesterVpcInfo.PeeringOptions, cr.Spec.ForProvider.RequesterPeeringOptions) { req := svcsdk.ModifyVpcPeeringConnectionOptionsInput{ - VpcPeeringConnectionId: pointer.String(*obj.VpcPeeringConnections[0].VpcPeeringConnectionId), + VpcPeeringConnectionId: pointer.ToOrNilIfZeroValue(*obj.VpcPeeringConnections[0].VpcPeeringConnectionId), } if *cr.Spec.ForProvider.PeerRegion == cr.Spec.ForProvider.Region { setAccepterRequester(&req, cr) } else { acc := svcsdk.ModifyVpcPeeringConnectionOptionsInput{ - VpcPeeringConnectionId: pointer.String(*obj.VpcPeeringConnections[0].VpcPeeringConnectionId), + VpcPeeringConnectionId: pointer.ToOrNilIfZeroValue(*obj.VpcPeeringConnections[0].VpcPeeringConnectionId), } setAccepter(&acc, cr) request, _ := pc.ModifyVpcPeeringConnectionOptionsRequest(&acc) diff --git a/pkg/controller/ecr/repository/controller.go b/pkg/controller/ecr/repository/controller.go index c9c853ae0e..7757dec40f 100644 --- a/pkg/controller/ecr/repository/controller.go +++ b/pkg/controller/ecr/repository/controller.go @@ -218,7 +218,7 @@ func (e *external) Update(ctx context.Context, mgd resource.Managed) (managed.Ex if patch.ImageTagMutability != nil { _, err := e.client.PutImageTagMutability(ctx, &awsecr.PutImageTagMutabilityInput{ - RepositoryName: pointer.String(meta.GetExternalName(cr)), + RepositoryName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), ImageTagMutability: awsecrtypes.ImageTagMutability(aws.ToString(patch.ImageTagMutability)), }) if err != nil { @@ -228,7 +228,7 @@ func (e *external) Update(ctx context.Context, mgd resource.Managed) (managed.Ex if patch.ImageScanningConfiguration != nil { _, err := e.client.PutImageScanningConfiguration(ctx, &awsecr.PutImageScanningConfigurationInput{ - RepositoryName: pointer.String(meta.GetExternalName(cr)), + RepositoryName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), ImageScanningConfiguration: &awsecrtypes.ImageScanningConfiguration{ ScanOnPush: patch.ImageScanningConfiguration.ScanOnPush, }, diff --git a/pkg/controller/efs/accesspoint/setup.go b/pkg/controller/efs/accesspoint/setup.go index b166cbdd8a..2a5f8313ba 100644 --- a/pkg/controller/efs/accesspoint/setup.go +++ b/pkg/controller/efs/accesspoint/setup.go @@ -55,7 +55,7 @@ func SetupAccessPoint(mgr ctrl.Manager, o controller.Options) error { func preObserve(_ context.Context, cr *svcapitypes.AccessPoint, obj *svcsdk.DescribeAccessPointsInput) error { obj.FileSystemId = nil - obj.AccessPointId = pointer.String(meta.GetExternalName(cr)) + obj.AccessPointId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -78,7 +78,7 @@ func postObserve(_ context.Context, cr *svcapitypes.AccessPoint, resp *svcsdk.De func preCreate(_ context.Context, cr *svcapitypes.AccessPoint, obj *svcsdk.CreateAccessPointInput) error { obj.FileSystemId = cr.Spec.ForProvider.FileSystemID - obj.ClientToken = pointer.String(string(cr.UID)) + obj.ClientToken = pointer.ToOrNilIfZeroValue(string(cr.UID)) return nil } diff --git a/pkg/controller/efs/filesystem/setup.go b/pkg/controller/efs/filesystem/setup.go index e9c84df04e..7369c618eb 100644 --- a/pkg/controller/efs/filesystem/setup.go +++ b/pkg/controller/efs/filesystem/setup.go @@ -77,7 +77,7 @@ func isUpToDate(_ context.Context, cr *svcapitypes.FileSystem, obj *svcsdk.Descr func preObserve(_ context.Context, cr *svcapitypes.FileSystem, obj *svcsdk.DescribeFileSystemsInput) error { // Describe query doesn't allow both CreationToken and FileSystemId to be given. obj.CreationToken = nil - obj.FileSystemId = pointer.String(meta.GetExternalName(cr)) + obj.FileSystemId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -95,7 +95,7 @@ func postObserve(_ context.Context, cr *svcapitypes.FileSystem, obj *svcsdk.Desc } func preUpdate(_ context.Context, cr *svcapitypes.FileSystem, obj *svcsdk.UpdateFileSystemInput) error { - obj.FileSystemId = pointer.String(meta.GetExternalName(cr)) + obj.FileSystemId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) // Type of this field is *float64 but in practice, only integer values are allowed. if cr.Spec.ForProvider.ProvisionedThroughputInMibps != nil { obj.ProvisionedThroughputInMibps = aws.Float64(float64(pointer.Int64Value(cr.Spec.ForProvider.ProvisionedThroughputInMibps))) @@ -104,12 +104,12 @@ func preUpdate(_ context.Context, cr *svcapitypes.FileSystem, obj *svcsdk.Update } func preDelete(_ context.Context, cr *svcapitypes.FileSystem, obj *svcsdk.DeleteFileSystemInput) (bool, error) { - obj.FileSystemId = pointer.String(meta.GetExternalName(cr)) + obj.FileSystemId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } func preCreate(_ context.Context, cr *svcapitypes.FileSystem, obj *svcsdk.CreateFileSystemInput) error { - obj.CreationToken = pointer.String(string(cr.UID)) + obj.CreationToken = pointer.ToOrNilIfZeroValue(string(cr.UID)) // Type of this field is *float64 but in practice, only integer values are allowed. if cr.Spec.ForProvider.ProvisionedThroughputInMibps != nil { obj.ProvisionedThroughputInMibps = aws.Float64(float64(pointer.Int64Value(cr.Spec.ForProvider.ProvisionedThroughputInMibps))) diff --git a/pkg/controller/efs/mounttarget/setup.go b/pkg/controller/efs/mounttarget/setup.go index eb255196aa..94e7be8f02 100644 --- a/pkg/controller/efs/mounttarget/setup.go +++ b/pkg/controller/efs/mounttarget/setup.go @@ -85,7 +85,7 @@ func preObserve(_ context.Context, cr *svcapitypes.MountTarget, obj *svcsdk.Desc obj.Marker = nil obj.MaxItems = nil obj.FileSystemId = nil - obj.MountTargetId = pointer.String(meta.GetExternalName(cr)) + obj.MountTargetId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } diff --git a/pkg/controller/efs/utils/tags.go b/pkg/controller/efs/utils/tags.go index 6741ec5bc2..a6a8e60caa 100644 --- a/pkg/controller/efs/utils/tags.go +++ b/pkg/controller/efs/utils/tags.go @@ -112,14 +112,14 @@ func DiffTags(spec []*svcapitypes.Tag, current []*svcsdk.Tag) (addTags []*svcsdk if currentVal != val { removeTags = append(removeTags, t.Key) addTags = append(addTags, &svcsdk.Tag{ - Key: pointer.String(key), - Value: pointer.String(val), + Key: pointer.ToOrNilIfZeroValue(key), + Value: pointer.ToOrNilIfZeroValue(val), }) } } else { addTags = append(addTags, &svcsdk.Tag{ - Key: pointer.String(key), - Value: pointer.String(val), + Key: pointer.ToOrNilIfZeroValue(key), + Value: pointer.ToOrNilIfZeroValue(val), }) } } @@ -133,7 +133,7 @@ func DiffTags(spec []*svcapitypes.Tag, current []*svcsdk.Tag) (addTags []*svcsdk } if _, exists := specMap[key]; !exists { - removeTags = append(removeTags, pointer.String(key)) + removeTags = append(removeTags, pointer.ToOrNilIfZeroValue(key)) } } @@ -161,7 +161,7 @@ func AddExternalTags(mg resource.Managed, spec []*svcapitypes.Tag) []*svcapitype func GetExternalTags(mg resource.Managed) []*svcapitypes.Tag { externalTags := []*svcapitypes.Tag{} for k, v := range resource.GetExternalTags(mg) { - externalTags = append(externalTags, &svcapitypes.Tag{Key: pointer.String(k), Value: pointer.String(v)}) + externalTags = append(externalTags, &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(k), Value: pointer.ToOrNilIfZeroValue(v)}) } sort.Slice(externalTags, func(i, j int) bool { diff --git a/pkg/controller/efs/utils/tags_test.go b/pkg/controller/efs/utils/tags_test.go index b87ffac243..61af8f3ad1 100644 --- a/pkg/controller/efs/utils/tags_test.go +++ b/pkg/controller/efs/utils/tags_test.go @@ -67,7 +67,7 @@ func TestDiffTags(t *testing.T) { sdkTag("testAdd", "val"), }, remove: []*string{ - pointer.String("testRemove"), + pointer.ToOrNilIfZeroValue("testRemove"), }, }, }, diff --git a/pkg/controller/eks/addon/setup.go b/pkg/controller/eks/addon/setup.go index 610be9a5aa..0c3dcf8731 100644 --- a/pkg/controller/eks/addon/setup.go +++ b/pkg/controller/eks/addon/setup.go @@ -134,7 +134,7 @@ func postObserve(_ context.Context, cr *eksv1alpha1.Addon, _ *awseks.DescribeAdd func lateInitialize(spec *eksv1alpha1.AddonParameters, resp *awseks.DescribeAddonOutput) error { if resp.Addon != nil { - spec.ServiceAccountRoleARN = pointer.LateInitializeStringPtr(spec.ServiceAccountRoleARN, resp.Addon.ServiceAccountRoleArn) + spec.ServiceAccountRoleARN = pointer.LateInitialize(spec.ServiceAccountRoleARN, resp.Addon.ServiceAccountRoleArn) } return nil } @@ -220,7 +220,7 @@ func (h *hooks) postUpdate(ctx context.Context, cr *eksv1alpha1.Addon, resp *aws add, remove := tags.DiffTagsMapPtr(cr.Spec.ForProvider.Tags, desc.Addon.Tags) if len(add) > 0 { _, err := h.client.TagResourceWithContext(ctx, &awseks.TagResourceInput{ - ResourceArn: pointer.String(meta.GetExternalName(cr)), + ResourceArn: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), Tags: add, }) if err != nil { @@ -229,7 +229,7 @@ func (h *hooks) postUpdate(ctx context.Context, cr *eksv1alpha1.Addon, resp *aws } if len(remove) > 0 { _, err := h.client.UntagResourceWithContext(ctx, &awseks.UntagResourceInput{ - ResourceArn: pointer.String(meta.GetExternalName(cr)), + ResourceArn: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), TagKeys: remove, }) if err != nil { @@ -273,7 +273,7 @@ func (t *tagger) Initialize(ctx context.Context, mg resource.Managed) error { cr.Spec.ForProvider.Tags = map[string]*string{} } for k, v := range resource.GetExternalTags(mg) { - cr.Spec.ForProvider.Tags[k] = pointer.String(v) + cr.Spec.ForProvider.Tags[k] = pointer.ToOrNilIfZeroValue(v) } return errors.Wrap(t.kube.Update(ctx, cr), errKubeUpdateFailed) } diff --git a/pkg/controller/eks/addon/setup_test.go b/pkg/controller/eks/addon/setup_test.go index 1144f265f9..6d92dcc15e 100644 --- a/pkg/controller/eks/addon/setup_test.go +++ b/pkg/controller/eks/addon/setup_test.go @@ -115,7 +115,7 @@ func TestObserve(t *testing.T) { ). Return(&awseks.DescribeAddonOutput{ Addon: &awseks.Addon{ - Status: pointer.String(awseks.AddonStatusActive), + Status: pointer.ToOrNilIfZeroValue(awseks.AddonStatusActive), }, }, nil) }), @@ -128,7 +128,7 @@ func TestObserve(t *testing.T) { withExternalName(testExternalName), withConditions(xpv1.Available()), withStatus(v1alpha1.AddonObservation{ - Status: pointer.String(awseks.AddonStatusActive), + Status: pointer.ToOrNilIfZeroValue(awseks.AddonStatusActive), }), ), result: managed.ExternalObservation{ @@ -170,7 +170,7 @@ func TestObserve(t *testing.T) { Return(&awseks.DescribeAddonOutput{ Addon: &awseks.Addon{ ServiceAccountRoleArn: &testServiceAccountRoleArn, - Status: pointer.String(awseks.AddonStatusActive), + Status: pointer.ToOrNilIfZeroValue(awseks.AddonStatusActive), }, }, nil) }), @@ -188,7 +188,7 @@ func TestObserve(t *testing.T) { }, ), withStatus(v1alpha1.AddonObservation{ - Status: pointer.String(awseks.AddonStatusActive), + Status: pointer.ToOrNilIfZeroValue(awseks.AddonStatusActive), }), ), result: managed.ExternalObservation{ diff --git a/pkg/controller/eks/cluster/cluster.go b/pkg/controller/eks/cluster/cluster.go index 70467dcff4..efdf9c7bb5 100644 --- a/pkg/controller/eks/cluster/cluster.go +++ b/pkg/controller/eks/cluster/cluster.go @@ -204,13 +204,13 @@ func (e *external) Update(ctx context.Context, mg resource.Managed) (managed.Ext } if patch.EncryptionConfig != nil { _, err := e.client.AssociateEncryptionConfig(ctx, &awseks.AssociateEncryptionConfigInput{ - ClusterName: pointer.String(meta.GetExternalName(cr)), + ClusterName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), EncryptionConfig: eks.GenerateEncryptionConfig(&cr.Spec.ForProvider), }) return managed.ExternalUpdate{}, errorutils.Wrap(resource.Ignore(eks.IsErrorInUse, err), errUpdateVersionFailed) } if patch.Version != nil { - _, err := e.client.UpdateClusterVersion(ctx, &awseks.UpdateClusterVersionInput{Name: pointer.String(meta.GetExternalName(cr)), Version: patch.Version}) + _, err := e.client.UpdateClusterVersion(ctx, &awseks.UpdateClusterVersionInput{Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), Version: patch.Version}) return managed.ExternalUpdate{}, errorutils.Wrap(resource.Ignore(eks.IsErrorInUse, err), errUpdateVersionFailed) } if patch.Logging != nil { @@ -230,7 +230,7 @@ func (e *external) Delete(ctx context.Context, mg resource.Managed) error { if cr.Status.AtProvider.Status == v1beta1.ClusterStatusDeleting { return nil } - _, err := e.client.DeleteCluster(ctx, &awseks.DeleteClusterInput{Name: pointer.String(meta.GetExternalName(cr))}) + _, err := e.client.DeleteCluster(ctx, &awseks.DeleteClusterInput{Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))}) return errorutils.Wrap(resource.Ignore(eks.IsErrorNotFound, err), errDeleteFailed) } diff --git a/pkg/controller/eks/fargateprofile/controller.go b/pkg/controller/eks/fargateprofile/controller.go index b395c6051e..a38997df90 100644 --- a/pkg/controller/eks/fargateprofile/controller.go +++ b/pkg/controller/eks/fargateprofile/controller.go @@ -192,7 +192,7 @@ func (e *external) Delete(ctx context.Context, mg resource.Managed) error { if cr.Status.AtProvider.Status == v1beta1.FargateProfileStatusDeleting { return nil } - _, err := e.client.DeleteFargateProfile(ctx, &awseks.DeleteFargateProfileInput{FargateProfileName: pointer.String(meta.GetExternalName(cr)), ClusterName: &cr.Spec.ForProvider.ClusterName}) + _, err := e.client.DeleteFargateProfile(ctx, &awseks.DeleteFargateProfileInput{FargateProfileName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), ClusterName: &cr.Spec.ForProvider.ClusterName}) return errorutils.Wrap(resource.Ignore(eks.IsErrorNotFound, err), errDeleteFailed) } diff --git a/pkg/controller/eks/nodegroup/controller.go b/pkg/controller/eks/nodegroup/controller.go index d9d64490a7..d1cde24c9b 100644 --- a/pkg/controller/eks/nodegroup/controller.go +++ b/pkg/controller/eks/nodegroup/controller.go @@ -212,7 +212,7 @@ func (e *external) Delete(ctx context.Context, mg resource.Managed) error { if cr.Status.AtProvider.Status == manualv1alpha1.NodeGroupStatusDeleting { return nil } - _, err := e.client.DeleteNodegroup(ctx, &awseks.DeleteNodegroupInput{NodegroupName: pointer.String(meta.GetExternalName(cr)), ClusterName: &cr.Spec.ForProvider.ClusterName}) + _, err := e.client.DeleteNodegroup(ctx, &awseks.DeleteNodegroupInput{NodegroupName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), ClusterName: &cr.Spec.ForProvider.ClusterName}) return errorutils.Wrap(resource.Ignore(eks.IsErrorNotFound, err), errDeleteFailed) } diff --git a/pkg/controller/elasticache/cacheparametergroup/setup.go b/pkg/controller/elasticache/cacheparametergroup/setup.go index b30d9a67cb..30961752cd 100644 --- a/pkg/controller/elasticache/cacheparametergroup/setup.go +++ b/pkg/controller/elasticache/cacheparametergroup/setup.go @@ -90,7 +90,7 @@ type hooks struct { } func preObserve(_ context.Context, cr *svcapitypes.CacheParameterGroup, obj *svcsdk.DescribeCacheParameterGroupsInput) error { - obj.CacheParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.CacheParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -105,7 +105,7 @@ func postObserve(_ context.Context, cr *svcapitypes.CacheParameterGroup, resp *s func (e *hooks) isUpToDate(ctx context.Context, cr *svcapitypes.CacheParameterGroup, resp *svcsdk.DescribeCacheParameterGroupsOutput) (bool, string, error) { input := &svcsdk.DescribeCacheParametersInput{ - CacheParameterGroupName: pointer.String(meta.GetExternalName(cr)), + CacheParameterGroupName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), } var results []*svcsdk.Parameter err := e.client.DescribeCacheParametersPagesWithContext(ctx, input, func(page *svcsdk.DescribeCacheParametersOutput, lastPage bool) bool { @@ -134,7 +134,7 @@ func (e *hooks) isUpToDate(ctx context.Context, cr *svcapitypes.CacheParameterGr } func preUpdate(ctx context.Context, cr *svcapitypes.CacheParameterGroup, obj *svcsdk.ModifyCacheParameterGroupInput) error { - obj.CacheParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.CacheParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.ParameterNameValues = make([]*svcsdk.ParameterNameValue, len(cr.Spec.ForProvider.ParameterNameValues)) for i, v := range cr.Spec.ForProvider.ParameterNameValues { @@ -157,11 +157,11 @@ func (e *hooks) postUpdate(ctx context.Context, cr *svcapitypes.CacheParameterGr } func preCreate(ctx context.Context, cr *svcapitypes.CacheParameterGroup, obj *svcsdk.CreateCacheParameterGroupInput) error { - obj.CacheParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.CacheParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } func preDelete(_ context.Context, cr *svcapitypes.CacheParameterGroup, obj *svcsdk.DeleteCacheParameterGroupInput) (bool, error) { - obj.CacheParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.CacheParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } diff --git a/pkg/controller/elasticache/cacheparametergroup/setup_test.go b/pkg/controller/elasticache/cacheparametergroup/setup_test.go index 87e738ca31..4c719d9e94 100644 --- a/pkg/controller/elasticache/cacheparametergroup/setup_test.go +++ b/pkg/controller/elasticache/cacheparametergroup/setup_test.go @@ -54,15 +54,15 @@ func withExternalName(value string) cacheParameterGroupModifier { func withCacheParameterGroupName(value string) cacheParameterGroupModifier { return func(o *svcapitypes.CacheParameterGroup) { - o.Status.AtProvider.CacheParameterGroupName = pointer.String(value) + o.Status.AtProvider.CacheParameterGroupName = pointer.ToOrNilIfZeroValue(value) } } func withParameter(k, v string) cacheParameterGroupModifier { return func(o *svcapitypes.CacheParameterGroup) { o.Spec.ForProvider.ParameterNameValues = append(o.Spec.ForProvider.ParameterNameValues, svcapitypes.ParameterNameValue{ - ParameterName: pointer.String(k), - ParameterValue: pointer.String(v), + ParameterName: pointer.ToOrNilIfZeroValue(k), + ParameterValue: pointer.ToOrNilIfZeroValue(v), }) } } @@ -101,24 +101,24 @@ func TestIsUpToDate(t *testing.T) { cb(&svcsdk.DescribeCacheParametersOutput{ Parameters: []*svcsdk.Parameter{ { - Source: pointer.String(svcsdk.SourceTypeUser), - ParameterName: pointer.String("c"), - ParameterValue: pointer.String("val3"), + Source: pointer.ToOrNilIfZeroValue(svcsdk.SourceTypeUser), + ParameterName: pointer.ToOrNilIfZeroValue("c"), + ParameterValue: pointer.ToOrNilIfZeroValue("val3"), }, { - Source: pointer.String(svcsdk.SourceTypeUser), - ParameterName: pointer.String("a"), - ParameterValue: pointer.String("val1"), + Source: pointer.ToOrNilIfZeroValue(svcsdk.SourceTypeUser), + ParameterName: pointer.ToOrNilIfZeroValue("a"), + ParameterValue: pointer.ToOrNilIfZeroValue("val1"), }, { - Source: pointer.String(svcsdk.SourceTypeUser), - ParameterName: pointer.String("b"), - ParameterValue: pointer.String("val2"), + Source: pointer.ToOrNilIfZeroValue(svcsdk.SourceTypeUser), + ParameterName: pointer.ToOrNilIfZeroValue("b"), + ParameterValue: pointer.ToOrNilIfZeroValue("val2"), }, { - Source: pointer.String(svcsdk.SourceTypeCacheParameterGroup), - ParameterName: pointer.String("as-default"), - ParameterValue: pointer.String("untouched"), + Source: pointer.ToOrNilIfZeroValue(svcsdk.SourceTypeCacheParameterGroup), + ParameterName: pointer.ToOrNilIfZeroValue("as-default"), + ParameterValue: pointer.ToOrNilIfZeroValue("untouched"), }, }, }, true) @@ -144,14 +144,14 @@ func TestIsUpToDate(t *testing.T) { cb(&svcsdk.DescribeCacheParametersOutput{ Parameters: []*svcsdk.Parameter{ { - Source: pointer.String(svcsdk.SourceTypeUser), - ParameterName: pointer.String("a"), - ParameterValue: pointer.String("valx"), + Source: pointer.ToOrNilIfZeroValue(svcsdk.SourceTypeUser), + ParameterName: pointer.ToOrNilIfZeroValue("a"), + ParameterValue: pointer.ToOrNilIfZeroValue("valx"), }, { - Source: pointer.String(svcsdk.SourceTypeUser), - ParameterName: pointer.String("b"), - ParameterValue: pointer.String("val2"), + Source: pointer.ToOrNilIfZeroValue(svcsdk.SourceTypeUser), + ParameterName: pointer.ToOrNilIfZeroValue("b"), + ParameterValue: pointer.ToOrNilIfZeroValue("val2"), }, }, }, true) diff --git a/pkg/controller/elbv2/target/controller.go b/pkg/controller/elbv2/target/controller.go index 0dec871eb1..bfb5a0cb96 100644 --- a/pkg/controller/elbv2/target/controller.go +++ b/pkg/controller/elbv2/target/controller.go @@ -119,7 +119,7 @@ func (e *external) Observe(ctx context.Context, mg resource.Managed) (managed.Ex TargetGroupArn: cr.Spec.ForProvider.TargetGroupARN, Targets: []types.TargetDescription{ { - Id: pointer.String(meta.GetExternalName(cr)), + Id: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), AvailabilityZone: cr.Spec.ForProvider.AvailabilityZone, Port: cr.Spec.ForProvider.Port, }, @@ -157,7 +157,7 @@ func (e *external) Create(ctx context.Context, mg resource.Managed) (managed.Ext TargetGroupArn: cr.Spec.ForProvider.TargetGroupARN, Targets: []types.TargetDescription{ { - Id: pointer.String(meta.GetExternalName(cr)), + Id: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), AvailabilityZone: cr.Spec.ForProvider.AvailabilityZone, Port: cr.Spec.ForProvider.Port, }, @@ -185,7 +185,7 @@ func (e *external) Delete(ctx context.Context, mg resource.Managed) error { TargetGroupArn: cr.Spec.ForProvider.TargetGroupARN, Targets: []types.TargetDescription{ { - Id: pointer.String(meta.GetExternalName(cr)), + Id: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), AvailabilityZone: cr.Spec.ForProvider.AvailabilityZone, Port: cr.Spec.ForProvider.Port, }, diff --git a/pkg/controller/firehose/deliverystream/setup.go b/pkg/controller/firehose/deliverystream/setup.go index 7778a33907..9ce521d437 100644 --- a/pkg/controller/firehose/deliverystream/setup.go +++ b/pkg/controller/firehose/deliverystream/setup.go @@ -27,6 +27,7 @@ import ( "github.com/crossplane/crossplane-runtime/pkg/meta" "github.com/crossplane/crossplane-runtime/pkg/reconciler/managed" "github.com/crossplane/crossplane-runtime/pkg/resource" + "k8s.io/utils/ptr" ctrl "sigs.k8s.io/controller-runtime" svcapitypes "github.com/crossplane-contrib/provider-aws/apis/firehose/v1alpha1" @@ -84,17 +85,17 @@ func SetupDeliveryStream(mgr ctrl.Manager, o controller.Options) error { } func preObserve(_ context.Context, cr *svcapitypes.DeliveryStream, obj *svcsdk.DescribeDeliveryStreamInput) error { - obj.DeliveryStreamName = pointer.String(meta.GetExternalName(cr)) + obj.DeliveryStreamName = ptr.To(meta.GetExternalName(cr)) return nil } func preCreate(_ context.Context, cr *svcapitypes.DeliveryStream, obj *svcsdk.CreateDeliveryStreamInput) error { - obj.DeliveryStreamName = pointer.String(meta.GetExternalName(cr)) + obj.DeliveryStreamName = ptr.To(meta.GetExternalName(cr)) return nil } func preDelete(_ context.Context, cr *svcapitypes.DeliveryStream, obj *svcsdk.DeleteDeliveryStreamInput) (bool, error) { - obj.DeliveryStreamName = pointer.String(meta.GetExternalName(cr)) + obj.DeliveryStreamName = ptr.To(meta.GetExternalName(cr)) return false, nil } diff --git a/pkg/controller/globalaccelerator/accelerator/setup.go b/pkg/controller/globalaccelerator/accelerator/setup.go index 0343074c77..5d285a510c 100644 --- a/pkg/controller/globalaccelerator/accelerator/setup.go +++ b/pkg/controller/globalaccelerator/accelerator/setup.go @@ -62,26 +62,26 @@ type gaClient struct { } func preObserve(ctx context.Context, cr *svcapitypes.Accelerator, obj *svcsdk.DescribeAcceleratorInput) error { - obj.AcceleratorArn = pointer.String(meta.GetExternalName(cr)) + obj.AcceleratorArn = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } func preCreate(_ context.Context, cr *svcapitypes.Accelerator, obj *svcsdk.CreateAcceleratorInput) error { obj.Name = cr.Spec.ForProvider.Name - obj.IdempotencyToken = pointer.String(string(cr.UID)) + obj.IdempotencyToken = pointer.ToOrNilIfZeroValue(string(cr.UID)) return nil } func (d gaClient) preDelete(ctx context.Context, cr *svcapitypes.Accelerator, obj *svcsdk.DeleteAcceleratorInput) (bool, error) { accArn := meta.GetExternalName(cr) - obj.AcceleratorArn = pointer.String(accArn) + obj.AcceleratorArn = pointer.ToOrNilIfZeroValue(accArn) // we need to check first if the accelerator is already disabled on remote // because sending an update request will bring it into pending state and // sending delete requests against an accelerator in pending state will result // in a AcceleratorNotDisabledException descReq := &svcsdk.DescribeAcceleratorInput{ - AcceleratorArn: pointer.String(accArn), + AcceleratorArn: pointer.ToOrNilIfZeroValue(accArn), } descResp, err := d.client.DescribeAccelerator(descReq) @@ -93,7 +93,7 @@ func (d gaClient) preDelete(ctx context.Context, cr *svcapitypes.Accelerator, ob enabled := false updReq := &svcsdk.UpdateAcceleratorInput{ Enabled: &enabled, - AcceleratorArn: pointer.String(meta.GetExternalName(cr)), + AcceleratorArn: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), Name: cr.Spec.ForProvider.Name, IpAddressType: cr.Spec.ForProvider.IPAddressType, } diff --git a/pkg/controller/glue/classifier/setup.go b/pkg/controller/glue/classifier/setup.go index 0d221428c5..a0b829a690 100644 --- a/pkg/controller/glue/classifier/setup.go +++ b/pkg/controller/glue/classifier/setup.go @@ -80,12 +80,12 @@ func SetupClassifier(mgr ctrl.Manager, o controller.Options) error { } func preDelete(_ context.Context, cr *svcapitypes.Classifier, obj *svcsdk.DeleteClassifierInput) (bool, error) { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } func preObserve(_ context.Context, cr *svcapitypes.Classifier, obj *svcsdk.GetClassifierInput) error { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -147,7 +147,7 @@ func preUpdate(_ context.Context, cr *svcapitypes.Classifier, obj *svcsdk.Update if cr.Spec.ForProvider.CustomCSVClassifier != nil { obj.CsvClassifier = &svcsdk.UpdateCsvClassifierRequest{ - Name: pointer.String(meta.GetExternalName(cr)), + Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), AllowSingleColumn: cr.Spec.ForProvider.CustomCSVClassifier.AllowSingleColumn, ContainsHeader: cr.Spec.ForProvider.CustomCSVClassifier.ContainsHeader, Delimiter: cr.Spec.ForProvider.CustomCSVClassifier.Delimiter, @@ -160,8 +160,8 @@ func preUpdate(_ context.Context, cr *svcapitypes.Classifier, obj *svcsdk.Update if cr.Spec.ForProvider.CustomXMLClassifier != nil { obj.XMLClassifier = &svcsdk.UpdateXMLClassifierRequest{ - Name: pointer.String(meta.GetExternalName(cr)), - Classification: pointer.String(cr.Spec.ForProvider.CustomXMLClassifier.Classification), + Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), + Classification: pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.CustomXMLClassifier.Classification), RowTag: cr.Spec.ForProvider.CustomXMLClassifier.RowTag, } } @@ -169,10 +169,10 @@ func preUpdate(_ context.Context, cr *svcapitypes.Classifier, obj *svcsdk.Update if cr.Spec.ForProvider.CustomGrokClassifier != nil { obj.GrokClassifier = &svcsdk.UpdateGrokClassifierRequest{ - Name: pointer.String(meta.GetExternalName(cr)), - Classification: pointer.String(cr.Spec.ForProvider.CustomGrokClassifier.Classification), + Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), + Classification: pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.CustomGrokClassifier.Classification), CustomPatterns: cr.Spec.ForProvider.CustomGrokClassifier.CustomPatterns, - GrokPattern: pointer.String(cr.Spec.ForProvider.CustomGrokClassifier.GrokPattern), + GrokPattern: pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.CustomGrokClassifier.GrokPattern), } // if CustomPatterns was not nil before but is changed to nil through update, AWS just keeps the old value... (see on AWS Console) // however if we fill the spec field with "", AWS sets it to nil/empty @@ -184,7 +184,7 @@ func preUpdate(_ context.Context, cr *svcapitypes.Classifier, obj *svcsdk.Update if cr.Spec.ForProvider.CustomJSONClassifier != nil { obj.JsonClassifier = &svcsdk.UpdateJsonClassifierRequest{ - Name: pointer.String(meta.GetExternalName(cr)), + Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), JsonPath: cr.Spec.ForProvider.CustomJSONClassifier.JSONPath, } } @@ -196,7 +196,7 @@ func preCreate(_ context.Context, cr *svcapitypes.Classifier, obj *svcsdk.Create if cr.Spec.ForProvider.CustomCSVClassifier != nil { obj.CsvClassifier = &svcsdk.CreateCsvClassifierRequest{ - Name: pointer.String(meta.GetExternalName(cr)), + Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), AllowSingleColumn: cr.Spec.ForProvider.CustomCSVClassifier.AllowSingleColumn, ContainsHeader: cr.Spec.ForProvider.CustomCSVClassifier.ContainsHeader, Delimiter: cr.Spec.ForProvider.CustomCSVClassifier.Delimiter, @@ -208,24 +208,24 @@ func preCreate(_ context.Context, cr *svcapitypes.Classifier, obj *svcsdk.Create if cr.Spec.ForProvider.CustomXMLClassifier != nil { obj.XMLClassifier = &svcsdk.CreateXMLClassifierRequest{ - Name: pointer.String(meta.GetExternalName(cr)), - Classification: pointer.String(cr.Spec.ForProvider.CustomXMLClassifier.Classification), + Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), + Classification: pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.CustomXMLClassifier.Classification), RowTag: cr.Spec.ForProvider.CustomXMLClassifier.RowTag, } } if cr.Spec.ForProvider.CustomGrokClassifier != nil { obj.GrokClassifier = &svcsdk.CreateGrokClassifierRequest{ - Name: pointer.String(meta.GetExternalName(cr)), - Classification: pointer.String(cr.Spec.ForProvider.CustomGrokClassifier.Classification), + Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), + Classification: pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.CustomGrokClassifier.Classification), CustomPatterns: cr.Spec.ForProvider.CustomGrokClassifier.CustomPatterns, - GrokPattern: pointer.String(cr.Spec.ForProvider.CustomGrokClassifier.GrokPattern), + GrokPattern: pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.CustomGrokClassifier.GrokPattern), } } if cr.Spec.ForProvider.CustomJSONClassifier != nil { obj.JsonClassifier = &svcsdk.CreateJsonClassifierRequest{ - Name: pointer.String(meta.GetExternalName(cr)), + Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), JsonPath: cr.Spec.ForProvider.CustomJSONClassifier.JSONPath, } } diff --git a/pkg/controller/glue/connection/setup.go b/pkg/controller/glue/connection/setup.go index dfdda9824e..5ad8166890 100644 --- a/pkg/controller/glue/connection/setup.go +++ b/pkg/controller/glue/connection/setup.go @@ -103,12 +103,12 @@ type hooks struct { } func preDelete(_ context.Context, cr *svcapitypes.Connection, obj *svcsdk.DeleteConnectionInput) (bool, error) { - obj.ConnectionName = pointer.String(meta.GetExternalName(cr)) + obj.ConnectionName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } func preObserve(_ context.Context, cr *svcapitypes.Connection, obj *svcsdk.GetConnectionInput) error { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -153,13 +153,13 @@ func (h *hooks) isUpToDate(_ context.Context, cr *svcapitypes.Connection, resp * } func preUpdate(_ context.Context, cr *svcapitypes.Connection, obj *svcsdk.UpdateConnectionInput) error { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) if cr.Spec.ForProvider.CustomConnectionInput != nil { obj.ConnectionInput = &svcsdk.ConnectionInput{ - Name: pointer.String(meta.GetExternalName(cr)), + Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), ConnectionProperties: cr.Spec.ForProvider.CustomConnectionInput.ConnectionProperties, - ConnectionType: pointer.String(cr.Spec.ForProvider.CustomConnectionInput.ConnectionType), + ConnectionType: pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.CustomConnectionInput.ConnectionType), Description: cr.Spec.ForProvider.CustomConnectionInput.Description, MatchCriteria: cr.Spec.ForProvider.CustomConnectionInput.MatchCriteria, } @@ -196,9 +196,9 @@ func preCreate(_ context.Context, cr *svcapitypes.Connection, obj *svcsdk.Create if cr.Spec.ForProvider.CustomConnectionInput != nil { obj.ConnectionInput = &svcsdk.ConnectionInput{ - Name: pointer.String(meta.GetExternalName(cr)), + Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), ConnectionProperties: cr.Spec.ForProvider.CustomConnectionInput.ConnectionProperties, - ConnectionType: pointer.String(cr.Spec.ForProvider.CustomConnectionInput.ConnectionType), + ConnectionType: pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.CustomConnectionInput.ConnectionType), Description: cr.Spec.ForProvider.CustomConnectionInput.Description, MatchCriteria: cr.Spec.ForProvider.CustomConnectionInput.MatchCriteria, } diff --git a/pkg/controller/glue/crawler/setup.go b/pkg/controller/glue/crawler/setup.go index bfae498407..f4c66b403b 100644 --- a/pkg/controller/glue/crawler/setup.go +++ b/pkg/controller/glue/crawler/setup.go @@ -106,7 +106,7 @@ type hooks struct { } func (h *hooks) preDelete(ctx context.Context, cr *svcapitypes.Crawler, obj *svcsdk.DeleteCrawlerInput) (bool, error) { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) // delete-requests to AWS will throw an error while the crawler is still working @@ -125,7 +125,7 @@ func (h *hooks) preDelete(ctx context.Context, cr *svcapitypes.Crawler, obj *svc } func preObserve(_ context.Context, cr *svcapitypes.Crawler, obj *svcsdk.GetCrawlerInput) error { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -158,30 +158,30 @@ func postObserve(_ context.Context, cr *svcapitypes.Crawler, obj *svcsdk.GetCraw //nolint:gocyclo func lateInitialize(spec *svcapitypes.CrawlerParameters, resp *svcsdk.GetCrawlerOutput) error { - spec.Configuration = pointer.LateInitializeStringPtr(spec.Configuration, resp.Crawler.Configuration) + spec.Configuration = pointer.LateInitialize(spec.Configuration, resp.Crawler.Configuration) if spec.LineageConfiguration == nil { spec.LineageConfiguration = &svcapitypes.LineageConfiguration{} } - spec.LineageConfiguration.CrawlerLineageSettings = pointer.LateInitializeStringPtr(spec.LineageConfiguration.CrawlerLineageSettings, resp.Crawler.LineageConfiguration.CrawlerLineageSettings) + spec.LineageConfiguration.CrawlerLineageSettings = pointer.LateInitialize(spec.LineageConfiguration.CrawlerLineageSettings, resp.Crawler.LineageConfiguration.CrawlerLineageSettings) if spec.RecrawlPolicy == nil { spec.RecrawlPolicy = &svcapitypes.RecrawlPolicy{} } - spec.RecrawlPolicy.RecrawlBehavior = pointer.LateInitializeStringPtr(spec.RecrawlPolicy.RecrawlBehavior, resp.Crawler.RecrawlPolicy.RecrawlBehavior) + spec.RecrawlPolicy.RecrawlBehavior = pointer.LateInitialize(spec.RecrawlPolicy.RecrawlBehavior, resp.Crawler.RecrawlPolicy.RecrawlBehavior) if spec.SchemaChangePolicy == nil { spec.SchemaChangePolicy = &svcapitypes.SchemaChangePolicy{} } - spec.SchemaChangePolicy.DeleteBehavior = pointer.LateInitializeStringPtr(spec.SchemaChangePolicy.DeleteBehavior, resp.Crawler.SchemaChangePolicy.DeleteBehavior) - spec.SchemaChangePolicy.UpdateBehavior = pointer.LateInitializeStringPtr(spec.SchemaChangePolicy.UpdateBehavior, resp.Crawler.SchemaChangePolicy.UpdateBehavior) + spec.SchemaChangePolicy.DeleteBehavior = pointer.LateInitialize(spec.SchemaChangePolicy.DeleteBehavior, resp.Crawler.SchemaChangePolicy.DeleteBehavior) + spec.SchemaChangePolicy.UpdateBehavior = pointer.LateInitialize(spec.SchemaChangePolicy.UpdateBehavior, resp.Crawler.SchemaChangePolicy.UpdateBehavior) if resp.Crawler.Targets.JdbcTargets != nil && spec.Targets.JDBCTargets != nil { for i, jdbcTarsIter := range resp.Crawler.Targets.JdbcTargets { if spec.Targets.JDBCTargets[i] != nil { - spec.Targets.JDBCTargets[i].Path = pointer.LateInitializeStringPtr(spec.Targets.JDBCTargets[i].Path, jdbcTarsIter.Path) + spec.Targets.JDBCTargets[i].Path = pointer.LateInitialize(spec.Targets.JDBCTargets[i].Path, jdbcTarsIter.Path) } } } @@ -189,7 +189,7 @@ func lateInitialize(spec *svcapitypes.CrawlerParameters, resp *svcsdk.GetCrawler for i, monTarsIter := range resp.Crawler.Targets.MongoDBTargets { if spec.Targets.MongoDBTargets[i] != nil { - spec.Targets.MongoDBTargets[i].ScanAll = pointer.LateInitializeBoolPtr(spec.Targets.MongoDBTargets[i].ScanAll, monTarsIter.ScanAll) + spec.Targets.MongoDBTargets[i].ScanAll = pointer.LateInitialize(spec.Targets.MongoDBTargets[i].ScanAll, monTarsIter.ScanAll) } } } @@ -244,12 +244,12 @@ func (h *hooks) isUpToDate(_ context.Context, cr *svcapitypes.Crawler, resp *svc //nolint:gocyclo func preUpdate(_ context.Context, cr *svcapitypes.Crawler, obj *svcsdk.UpdateCrawlerInput) error { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.SetClassifiers(cr.Spec.ForProvider.Classifiers) obj.CrawlerSecurityConfiguration = cr.Spec.ForProvider.CrawlerSecurityConfiguration obj.DatabaseName = cr.Spec.ForProvider.DatabaseName - obj.Role = pointer.String(cr.Spec.ForProvider.Role) + obj.Role = pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.Role) obj.Targets = &svcsdk.CrawlerTargets{} @@ -258,7 +258,7 @@ func preUpdate(_ context.Context, cr *svcapitypes.Crawler, obj *svcsdk.UpdateCra for _, catTarsIter := range cr.Spec.ForProvider.Targets.CatalogTargets { catTarsElem := &svcsdk.CatalogTarget{ DatabaseName: ptr.To(catTarsIter.DatabaseName), - Tables: pointer.StringSliceToPtr(catTarsIter.Tables), + Tables: pointer.SliceValueToPtr(catTarsIter.Tables), } catTars = append(catTars, catTarsElem) } @@ -334,9 +334,9 @@ func (h *hooks) postUpdate(ctx context.Context, cr *svcapitypes.Crawler, obj *sv //nolint:gocyclo func preCreate(_ context.Context, cr *svcapitypes.Crawler, obj *svcsdk.CreateCrawlerInput) error { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) - obj.Role = pointer.String(cr.Spec.ForProvider.Role) + obj.Role = pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.Role) obj.SetClassifiers(cr.Spec.ForProvider.Classifiers) obj.CrawlerSecurityConfiguration = cr.Spec.ForProvider.CrawlerSecurityConfiguration obj.DatabaseName = cr.Spec.ForProvider.DatabaseName @@ -348,7 +348,7 @@ func preCreate(_ context.Context, cr *svcapitypes.Crawler, obj *svcsdk.CreateCra for _, catTarsIter := range cr.Spec.ForProvider.Targets.CatalogTargets { catTarsElem := &svcsdk.CatalogTarget{ DatabaseName: ptr.To(catTarsIter.DatabaseName), - Tables: pointer.StringSliceToPtr(catTarsIter.Tables), + Tables: pointer.SliceValueToPtr(catTarsIter.Tables), } catTars = append(catTars, catTarsElem) } @@ -453,7 +453,7 @@ func customGenerateCrawler(resp *svcsdk.GetCrawlerOutput) *svcapitypes.Crawler { for _, catTarsIter := range resp.Crawler.Targets.CatalogTargets { catTarsElem := &svcapitypes.CustomCatalogTarget{ DatabaseName: pointer.StringValue(catTarsIter.DatabaseName), - Tables: pointer.StringPtrSliceToValue(catTarsIter.Tables), + Tables: pointer.SlicePtrToValue(catTarsIter.Tables), } catTars = append(catTars, catTarsElem) } diff --git a/pkg/controller/glue/database/setup.go b/pkg/controller/glue/database/setup.go index 4fe88dbadb..c9c043ec52 100644 --- a/pkg/controller/glue/database/setup.go +++ b/pkg/controller/glue/database/setup.go @@ -89,12 +89,12 @@ func SetupDatabase(mgr ctrl.Manager, o controller.Options) error { } func preDelete(_ context.Context, cr *svcapitypes.Database, obj *svcsdk.DeleteDatabaseInput) (bool, error) { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } func preObserve(_ context.Context, cr *svcapitypes.Database, obj *svcsdk.GetDatabaseInput) error { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -111,7 +111,7 @@ func postObserve(_ context.Context, cr *svcapitypes.Database, obj *svcsdk.GetDat func lateInitialize(spec *svcapitypes.DatabaseParameters, resp *svcsdk.GetDatabaseOutput) error { - spec.CatalogID = pointer.LateInitializeStringPtr(spec.CatalogID, resp.Database.CatalogId) + spec.CatalogID = pointer.LateInitialize(spec.CatalogID, resp.Database.CatalogId) if spec.CustomDatabaseInput == nil { spec.CustomDatabaseInput = &svcapitypes.CustomDatabaseInput{} @@ -190,12 +190,12 @@ func isUpToDate(_ context.Context, cr *svcapitypes.Database, resp *svcsdk.GetDat } func preUpdate(_ context.Context, cr *svcapitypes.Database, obj *svcsdk.UpdateDatabaseInput) error { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.DatabaseInput = &svcsdk.DatabaseInput{ Description: cr.Spec.ForProvider.CustomDatabaseInput.Description, LocationUri: cr.Spec.ForProvider.CustomDatabaseInput.LocationURI, - Name: pointer.String(meta.GetExternalName(cr)), + Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), Parameters: cr.Spec.ForProvider.CustomDatabaseInput.Parameters, } @@ -251,11 +251,11 @@ func preCreate(_ context.Context, cr *svcapitypes.Database, obj *svcsdk.CreateDa if cr.Spec.ForProvider.CustomDatabaseInput == nil { obj.DatabaseInput = &svcsdk.DatabaseInput{ - Name: pointer.String(meta.GetExternalName(cr)), + Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), } } else { obj.DatabaseInput = &svcsdk.DatabaseInput{ - Name: pointer.String(meta.GetExternalName(cr)), + Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), Description: cr.Spec.ForProvider.CustomDatabaseInput.Description, LocationUri: cr.Spec.ForProvider.CustomDatabaseInput.LocationURI, Parameters: cr.Spec.ForProvider.CustomDatabaseInput.Parameters, diff --git a/pkg/controller/glue/job/setup.go b/pkg/controller/glue/job/setup.go index 2417f22dc3..da37b5bf31 100644 --- a/pkg/controller/glue/job/setup.go +++ b/pkg/controller/glue/job/setup.go @@ -104,12 +104,12 @@ type hooks struct { } func preDelete(_ context.Context, cr *svcapitypes.Job, obj *svcsdk.DeleteJobInput) (bool, error) { - obj.JobName = pointer.String(meta.GetExternalName(cr)) + obj.JobName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } func preObserve(_ context.Context, cr *svcapitypes.Job, obj *svcsdk.GetJobInput) error { - obj.JobName = pointer.String(meta.GetExternalName(cr)) + obj.JobName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -130,17 +130,17 @@ func lateInitialize(spec *svcapitypes.JobParameters, resp *svcsdk.GetJobOutput) // Command is required, so spec should never be nil if resp.Job.Command != nil { - spec.Command.PythonVersion = pointer.LateInitializeStringPtr(spec.Command.PythonVersion, resp.Job.Command.PythonVersion) + spec.Command.PythonVersion = pointer.LateInitialize(spec.Command.PythonVersion, resp.Job.Command.PythonVersion) } if spec.ExecutionProperty == nil { spec.ExecutionProperty = &svcapitypes.ExecutionProperty{} } - spec.ExecutionProperty.MaxConcurrentRuns = pointer.LateInitializeInt64Ptr(spec.ExecutionProperty.MaxConcurrentRuns, resp.Job.ExecutionProperty.MaxConcurrentRuns) + spec.ExecutionProperty.MaxConcurrentRuns = pointer.LateInitialize(spec.ExecutionProperty.MaxConcurrentRuns, resp.Job.ExecutionProperty.MaxConcurrentRuns) - spec.GlueVersion = pointer.LateInitializeStringPtr(spec.GlueVersion, resp.Job.GlueVersion) - spec.MaxRetries = pointer.LateInitializeInt64Ptr(spec.MaxRetries, resp.Job.MaxRetries) - spec.Timeout = pointer.LateInitializeInt64Ptr(spec.Timeout, resp.Job.Timeout) + spec.GlueVersion = pointer.LateInitialize(spec.GlueVersion, resp.Job.GlueVersion) + spec.MaxRetries = pointer.LateInitialize(spec.MaxRetries, resp.Job.MaxRetries) + spec.Timeout = pointer.LateInitialize(spec.Timeout, resp.Job.Timeout) // if WorkerType & NumberOfWorkers are used, AWS is in charge of setting MaxCapacity (not the user, not we) if spec.MaxCapacity == nil || (spec.WorkerType != nil && spec.NumberOfWorkers != nil) { @@ -176,7 +176,7 @@ func (h *hooks) isUpToDate(_ context.Context, cr *svcapitypes.Job, resp *svcsdk. } func preUpdate(_ context.Context, cr *svcapitypes.Job, obj *svcsdk.UpdateJobInput) error { - obj.JobName = pointer.String(meta.GetExternalName(cr)) + obj.JobName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.JobUpdate = &svcsdk.JobUpdate{ DefaultArguments: cr.Spec.ForProvider.DefaultArguments, @@ -242,9 +242,9 @@ func (h *hooks) postUpdate(ctx context.Context, cr *svcapitypes.Job, obj *svcsdk } func preCreate(_ context.Context, cr *svcapitypes.Job, obj *svcsdk.CreateJobInput) error { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) - obj.Role = pointer.String(cr.Spec.ForProvider.Role) + obj.Role = pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.Role) obj.SecurityConfiguration = cr.Spec.ForProvider.SecurityConfiguration if cr.Spec.ForProvider.Connections != nil { diff --git a/pkg/controller/glue/securityconfiguration/setup.go b/pkg/controller/glue/securityconfiguration/setup.go index afc73f798c..953d850956 100644 --- a/pkg/controller/glue/securityconfiguration/setup.go +++ b/pkg/controller/glue/securityconfiguration/setup.go @@ -77,12 +77,12 @@ func SetupSecurityConfiguration(mgr ctrl.Manager, o controller.Options) error { } func preDelete(_ context.Context, cr *svcapitypes.SecurityConfiguration, obj *svcsdk.DeleteSecurityConfigurationInput) (bool, error) { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } func preObserve(_ context.Context, cr *svcapitypes.SecurityConfiguration, obj *svcsdk.GetSecurityConfigurationInput) error { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -108,7 +108,7 @@ func postCreate(_ context.Context, cr *svcapitypes.SecurityConfiguration, obj *s } func preCreate(_ context.Context, cr *svcapitypes.SecurityConfiguration, obj *svcsdk.CreateSecurityConfigurationInput) error { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) if cr.Spec.ForProvider.CustomEncryptionConfiguration != nil { diff --git a/pkg/controller/iam/accesskey/controller.go b/pkg/controller/iam/accesskey/controller.go index 1d401d799f..62079d5c36 100644 --- a/pkg/controller/iam/accesskey/controller.go +++ b/pkg/controller/iam/accesskey/controller.go @@ -134,7 +134,7 @@ func (e *external) Observe(ctx context.Context, mgd resource.Managed) (managed.E cr.SetConditions(xpv1.Unavailable()) } current := cr.Spec.ForProvider.Status - cr.Spec.ForProvider.Status = pointer.LateInitializeString(cr.Spec.ForProvider.Status, aws.String(string(accessKey.Status))) + cr.Spec.ForProvider.Status = pointer.LateInitializeValueFromPtr(cr.Spec.ForProvider.Status, aws.String(string(accessKey.Status))) return managed.ExternalObservation{ ResourceExists: true, ResourceUpToDate: string(accessKey.Status) == cr.Spec.ForProvider.Status, diff --git a/pkg/controller/iam/group/controller.go b/pkg/controller/iam/group/controller.go index 3b74b61719..fbd25bda0e 100644 --- a/pkg/controller/iam/group/controller.go +++ b/pkg/controller/iam/group/controller.go @@ -125,7 +125,7 @@ func (e *external) Observe(ctx context.Context, mgd resource.Managed) (managed.E group := *observed.Group current := cr.Spec.ForProvider.DeepCopy() - cr.Spec.ForProvider.Path = pointer.LateInitializeStringPtr(cr.Spec.ForProvider.Path, group.Path) + cr.Spec.ForProvider.Path = pointer.LateInitialize(cr.Spec.ForProvider.Path, group.Path) if aws.ToString(current.Path) != aws.ToString(cr.Spec.ForProvider.Path) { if err := e.kube.Update(ctx, cr); err != nil { diff --git a/pkg/controller/iam/policy/controller.go b/pkg/controller/iam/policy/controller.go index bb3546f125..36c4182db4 100644 --- a/pkg/controller/iam/policy/controller.go +++ b/pkg/controller/iam/policy/controller.go @@ -379,7 +379,7 @@ func (e *external) getPolicyArnByNameAndPath(ctx context.Context, policyName str // slashes. In addition, it can contain any ASCII character from the ! (\u0021 ) through the // DEL character (\u007F ), including most punctuation characters, digits, and upper and lowercased letters. if policyPath == nil { - policyPath = pointer.String("/") + policyPath = pointer.ToOrNilIfZeroValue("/") } // Use it to construct an arn for the policy diff --git a/pkg/controller/iam/policy/controller_test.go b/pkg/controller/iam/policy/controller_test.go index 02a1f7e69e..0785873098 100644 --- a/pkg/controller/iam/policy/controller_test.go +++ b/pkg/controller/iam/policy/controller_test.go @@ -64,9 +64,9 @@ var ( errBoom = errors.New("boom") getCallerIdentityOutput = &sts.GetCallerIdentityOutput{ - Account: pointer.String("123456789012"), - Arn: pointer.String("arn:aws:iam::123456789012:user/DevAdmin"), - UserId: pointer.String("AIDASAMPLEUSERID"), + Account: pointer.ToOrNilIfZeroValue("123456789012"), + Arn: pointer.ToOrNilIfZeroValue("arn:aws:iam::123456789012:user/DevAdmin"), + UserId: pointer.ToOrNilIfZeroValue("AIDASAMPLEUSERID"), ResultMetadata: middleware.Metadata{}, } @@ -131,7 +131,7 @@ func withSpec(spec v1beta1.PolicyParameters) policyModifier { func withPath(path string) policyModifier { return func(r *v1beta1.Policy) { - r.Spec.ForProvider.Path = pointer.String(path) + r.Spec.ForProvider.Path = pointer.ToOrNilIfZeroValue(path) } } diff --git a/pkg/controller/iam/role/controller_test.go b/pkg/controller/iam/role/controller_test.go index 991e1104cc..86e931e497 100644 --- a/pkg/controller/iam/role/controller_test.go +++ b/pkg/controller/iam/role/controller_test.go @@ -143,7 +143,7 @@ func TestObserve(t *testing.T) { MockGetRole: func(ctx context.Context, input *awsiam.GetRoleInput, opts []func(*awsiam.Options)) (*awsiam.GetRoleOutput, error) { return &awsiam.GetRoleOutput{ Role: &awsiamtypes.Role{ - Arn: pointer.String(arn), + Arn: pointer.ToOrNilIfZeroValue(arn), }, }, nil }, diff --git a/pkg/controller/iam/servicelinkedrole/setup.go b/pkg/controller/iam/servicelinkedrole/setup.go index c0ded8f63e..08771cf1bf 100644 --- a/pkg/controller/iam/servicelinkedrole/setup.go +++ b/pkg/controller/iam/servicelinkedrole/setup.go @@ -88,7 +88,7 @@ func (e *hooks) observe(ctx context.Context, mg resource.Managed) (managed.Exter } res, err := e.client.GetRoleWithContext(ctx, &svcsdk.GetRoleInput{ - RoleName: pointer.String(meta.GetExternalName(cr)), + RoleName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) if err != nil { return managed.ExternalObservation{}, errors.Wrap(resource.Ignore(IsNotFound, err), errGetRole) @@ -163,6 +163,6 @@ func postCreate(ctx context.Context, cr *svcapitypes.ServiceLinkedRole, obj *svc } func preDelete(ctx context.Context, cr *svcapitypes.ServiceLinkedRole, obj *svcsdk.DeleteServiceLinkedRoleInput) (bool, error) { - obj.RoleName = pointer.String(meta.GetExternalName(cr)) + obj.RoleName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } diff --git a/pkg/controller/kafka/cluster/setup.go b/pkg/controller/kafka/cluster/setup.go index e4bea71eee..a88c6d5437 100644 --- a/pkg/controller/kafka/cluster/setup.go +++ b/pkg/controller/kafka/cluster/setup.go @@ -129,7 +129,7 @@ type hooks struct { } func preDelete(_ context.Context, cr *svcapitypes.Cluster, obj *svcsdk.DeleteClusterInput) (bool, error) { - obj.ClusterArn = pointer.String(meta.GetExternalName(cr)) + obj.ClusterArn = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } @@ -145,7 +145,7 @@ func postDelete(_ context.Context, cr *svcapitypes.Cluster, obj *svcsdk.DeleteCl } func preObserve(_ context.Context, cr *svcapitypes.Cluster, obj *svcsdk.DescribeClusterInput) error { - obj.ClusterArn = pointer.String(meta.GetExternalName(cr)) + obj.ClusterArn = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -168,7 +168,7 @@ func (u *hooks) postObserve(ctx context.Context, cr *svcapitypes.Cluster, obj *s // see: https://docs.aws.amazon.com/msk/latest/developerguide/msk-get-bootstrap-brokers.html // retrieve cluster bootstrap brokers (endpoints) // not possible in every cluster state (e.g. "You can't get bootstrap broker nodes for a cluster in DELETING state.") - endpoints, err := u.client.GetBootstrapBrokersWithContext(ctx, &svcsdk.GetBootstrapBrokersInput{ClusterArn: pointer.String(meta.GetExternalName(cr))}) + endpoints, err := u.client.GetBootstrapBrokersWithContext(ctx, &svcsdk.GetBootstrapBrokersInput{ClusterArn: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))}) if err != nil { return obs, errorutils.Wrap(err, errGetBootstrapBrokers) } @@ -224,7 +224,7 @@ func postCreate(_ context.Context, cr *svcapitypes.Cluster, obj *svcsdk.CreateCl func LateInitialize(cr *svcapitypes.ClusterParameters, obj *svcsdk.DescribeClusterOutput) error { //nolint:gocyclo if cr.EnhancedMonitoring == nil && obj.ClusterInfo.EnhancedMonitoring != nil { - cr.EnhancedMonitoring = pointer.LateInitializeStringPtr(cr.EnhancedMonitoring, obj.ClusterInfo.EnhancedMonitoring) + cr.EnhancedMonitoring = pointer.LateInitialize(cr.EnhancedMonitoring, obj.ClusterInfo.EnhancedMonitoring) } if cr.CustomBrokerNodeGroupInfo.SecurityGroups == nil && obj.ClusterInfo.BrokerNodeGroupInfo.SecurityGroups != nil { @@ -239,7 +239,7 @@ func LateInitialize(cr *svcapitypes.ClusterParameters, obj *svcsdk.DescribeClust if cr.EncryptionInfo.EncryptionAtRest == nil { cr.EncryptionInfo.EncryptionAtRest = &svcapitypes.EncryptionAtRest{} } - cr.EncryptionInfo.EncryptionAtRest.DataVolumeKMSKeyID = pointer.LateInitializeStringPtr( + cr.EncryptionInfo.EncryptionAtRest.DataVolumeKMSKeyID = pointer.LateInitialize( cr.EncryptionInfo.EncryptionAtRest.DataVolumeKMSKeyID, obj.ClusterInfo.EncryptionInfo.EncryptionAtRest.DataVolumeKMSKeyId, ) @@ -248,11 +248,11 @@ func LateInitialize(cr *svcapitypes.ClusterParameters, obj *svcsdk.DescribeClust if cr.EncryptionInfo.EncryptionInTransit == nil { cr.EncryptionInfo.EncryptionInTransit = &svcapitypes.EncryptionInTransit{} } - cr.EncryptionInfo.EncryptionInTransit.ClientBroker = pointer.LateInitializeStringPtr( + cr.EncryptionInfo.EncryptionInTransit.ClientBroker = pointer.LateInitialize( cr.EncryptionInfo.EncryptionInTransit.ClientBroker, obj.ClusterInfo.EncryptionInfo.EncryptionInTransit.ClientBroker, ) - cr.EncryptionInfo.EncryptionInTransit.InCluster = pointer.LateInitializeBoolPtr( + cr.EncryptionInfo.EncryptionInTransit.InCluster = pointer.LateInitialize( cr.EncryptionInfo.EncryptionInTransit.InCluster, obj.ClusterInfo.EncryptionInfo.EncryptionInTransit.InCluster, ) @@ -268,7 +268,7 @@ func LateInitialize(cr *svcapitypes.ClusterParameters, obj *svcsdk.DescribeClust if cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.PublicAccess == nil { cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.PublicAccess = &svcapitypes.CustomPublicAccess{} } - cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.PublicAccess.Type = pointer.LateInitializeStringPtr( + cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.PublicAccess.Type = pointer.LateInitialize( cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.PublicAccess.Type, obj.ClusterInfo.BrokerNodeGroupInfo.ConnectivityInfo.PublicAccess.Type, ) @@ -289,7 +289,7 @@ func LateInitialize(cr *svcapitypes.ClusterParameters, obj *svcsdk.DescribeClust if cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.VPCConnectivity.ClientAuthentication.SASL.IAM == nil { cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.VPCConnectivity.ClientAuthentication.SASL.IAM = &svcapitypes.VPCConnectivityIAM{} } - cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.VPCConnectivity.ClientAuthentication.SASL.IAM.Enabled = pointer.LateInitializeBoolPtr( + cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.VPCConnectivity.ClientAuthentication.SASL.IAM.Enabled = pointer.LateInitialize( cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.VPCConnectivity.ClientAuthentication.SASL.IAM.Enabled, obj.ClusterInfo.BrokerNodeGroupInfo.ConnectivityInfo.VpcConnectivity.ClientAuthentication.Sasl.Iam.Enabled, ) @@ -298,7 +298,7 @@ func LateInitialize(cr *svcapitypes.ClusterParameters, obj *svcsdk.DescribeClust if cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.VPCConnectivity.ClientAuthentication.SASL.SCRAM == nil { cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.VPCConnectivity.ClientAuthentication.SASL.SCRAM = &svcapitypes.VPCConnectivitySCRAM{} } - cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.VPCConnectivity.ClientAuthentication.SASL.SCRAM.Enabled = pointer.LateInitializeBoolPtr( + cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.VPCConnectivity.ClientAuthentication.SASL.SCRAM.Enabled = pointer.LateInitialize( cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.VPCConnectivity.ClientAuthentication.SASL.SCRAM.Enabled, obj.ClusterInfo.BrokerNodeGroupInfo.ConnectivityInfo.VpcConnectivity.ClientAuthentication.Sasl.Scram.Enabled, ) @@ -308,7 +308,7 @@ func LateInitialize(cr *svcapitypes.ClusterParameters, obj *svcsdk.DescribeClust if cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.VPCConnectivity.ClientAuthentication.TLS == nil { cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.VPCConnectivity.ClientAuthentication.TLS = &svcapitypes.VPCConnectivityTLS{} } - cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.VPCConnectivity.ClientAuthentication.TLS.Enabled = pointer.LateInitializeBoolPtr( + cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.VPCConnectivity.ClientAuthentication.TLS.Enabled = pointer.LateInitialize( cr.CustomBrokerNodeGroupInfo.ConnectivityInfo.VPCConnectivity.ClientAuthentication.TLS.Enabled, obj.ClusterInfo.BrokerNodeGroupInfo.ConnectivityInfo.VpcConnectivity.ClientAuthentication.Tls.Enabled, ) @@ -372,7 +372,7 @@ func (u *hooks) isUpToDate(ctx context.Context, wanted *svcapitypes.Cluster, cur func (u *hooks) getClusterPolicyState(ctx context.Context, wanted *svcapitypes.Cluster) (subResourceState, string, error) { res, err := u.client.GetClusterPolicyWithContext(ctx, &svcsdk.GetClusterPolicyInput{ - ClusterArn: pointer.String(meta.GetExternalName(wanted)), + ClusterArn: pointer.ToOrNilIfZeroValue(meta.GetExternalName(wanted)), }) if IsNotFound(err) { if wanted.Spec.ForProvider.ClusterPolicy == nil { diff --git a/pkg/controller/kafka/configuration/setup.go b/pkg/controller/kafka/configuration/setup.go index b4e565273e..692b7dc28c 100644 --- a/pkg/controller/kafka/configuration/setup.go +++ b/pkg/controller/kafka/configuration/setup.go @@ -77,7 +77,7 @@ func SetupConfiguration(mgr ctrl.Manager, o controller.Options) error { } func preCreate(_ context.Context, cr *svcapitypes.Configuration, obj *svcsdk.CreateConfigurationInput) error { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) serverProperties := strings.Join(cr.Spec.ForProvider.Properties, "\n") obj.ServerProperties = []byte(serverProperties) return nil @@ -92,7 +92,7 @@ func postCreate(_ context.Context, cr *svcapitypes.Configuration, obj *svcsdk.Cr } func preObserve(_ context.Context, cr *svcapitypes.Configuration, obj *svcsdk.DescribeConfigurationInput) error { - obj.Arn = pointer.String(meta.GetExternalName(cr)) + obj.Arn = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -112,7 +112,7 @@ func postObserve(_ context.Context, cr *svcapitypes.Configuration, obj *svcsdk.D } func preDelete(_ context.Context, cr *svcapitypes.Configuration, obj *svcsdk.DeleteConfigurationInput) (bool, error) { - obj.Arn = pointer.String(meta.GetExternalName(cr)) + obj.Arn = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } diff --git a/pkg/controller/kinesis/stream/setup.go b/pkg/controller/kinesis/stream/setup.go index 08f3a22a19..ab77ed4623 100644 --- a/pkg/controller/kinesis/stream/setup.go +++ b/pkg/controller/kinesis/stream/setup.go @@ -86,12 +86,12 @@ func SetupStream(mgr ctrl.Manager, o controller.Options) error { func preDelete(_ context.Context, cr *svcapitypes.Stream, obj *svcsdk.DeleteStreamInput) (bool, error) { obj.EnforceConsumerDeletion = cr.Spec.ForProvider.EnforceConsumerDeletion - obj.StreamName = pointer.String(meta.GetExternalName(cr)) + obj.StreamName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } func preObserve(_ context.Context, cr *svcapitypes.Stream, obj *svcsdk.DescribeStreamInput) error { - obj.StreamName = pointer.String(meta.GetExternalName(cr)) + obj.StreamName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -120,7 +120,7 @@ func postObserve(_ context.Context, cr *svcapitypes.Stream, obj *svcsdk.Describe } func preCreate(_ context.Context, cr *svcapitypes.Stream, obj *svcsdk.CreateStreamInput) error { - obj.StreamName = pointer.String(meta.GetExternalName(cr)) + obj.StreamName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -192,7 +192,7 @@ func (u *updater) update(ctx context.Context, mg resource.Managed) (managed.Exte // we need information from stream for decisions obj, err := u.client.DescribeStreamWithContext(ctx, &svcsdk.DescribeStreamInput{ - StreamName: pointer.String(meta.GetExternalName(cr)), + StreamName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) if err != nil { return managed.ExternalUpdate{}, errorutils.Wrap(err, errCreate) @@ -207,7 +207,7 @@ func (u *updater) update(ctx context.Context, mg resource.Managed) (managed.Exte pointer.StringValue(obj.StreamDescription.StreamStatus) == svcsdk.StreamStatusActive { scalingType := svcsdk.ScalingTypeUniformScaling if _, err := u.client.UpdateShardCountWithContext(ctx, &svcsdk.UpdateShardCountInput{ - StreamName: pointer.String(meta.GetExternalName(cr)), + StreamName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), TargetShardCount: cr.Spec.ForProvider.ShardCount, ScalingType: &scalingType, }); err != nil { @@ -220,7 +220,7 @@ func (u *updater) update(ctx context.Context, mg resource.Managed) (managed.Exte if pointer.Int64Value(cr.Spec.ForProvider.RetentionPeriodHours) > pointer.Int64Value(obj.StreamDescription.RetentionPeriodHours) && pointer.StringValue(obj.StreamDescription.StreamStatus) == svcsdk.StreamStatusActive { if _, err := u.client.IncreaseStreamRetentionPeriodWithContext(ctx, &svcsdk.IncreaseStreamRetentionPeriodInput{ - StreamName: pointer.String(meta.GetExternalName(cr)), + StreamName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), RetentionPeriodHours: cr.Spec.ForProvider.RetentionPeriodHours, }); err != nil { return managed.ExternalUpdate{}, errorutils.Wrap(err, errUpdate) @@ -232,7 +232,7 @@ func (u *updater) update(ctx context.Context, mg resource.Managed) (managed.Exte if pointer.Int64Value(cr.Spec.ForProvider.RetentionPeriodHours) < pointer.Int64Value(obj.StreamDescription.RetentionPeriodHours) && pointer.StringValue(obj.StreamDescription.StreamStatus) == svcsdk.StreamStatusActive { if _, err := u.client.DecreaseStreamRetentionPeriodWithContext(ctx, &svcsdk.DecreaseStreamRetentionPeriodInput{ - StreamName: pointer.String(meta.GetExternalName(cr)), + StreamName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), RetentionPeriodHours: cr.Spec.ForProvider.RetentionPeriodHours, }); err != nil { return managed.ExternalUpdate{}, errorutils.Wrap(err, errUpdate) @@ -248,7 +248,7 @@ func (u *updater) update(ctx context.Context, mg resource.Managed) (managed.Exte if _, err := u.client.StartStreamEncryptionWithContext(ctx, &svcsdk.StartStreamEncryptionInput{ EncryptionType: &kmsType, KeyId: cr.Spec.ForProvider.KMSKeyARN, - StreamName: pointer.String(meta.GetExternalName(cr)), + StreamName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }); err != nil { return managed.ExternalUpdate{}, errorutils.Wrap(err, errUpdate) } @@ -270,7 +270,7 @@ func (u *updater) update(ctx context.Context, mg resource.Managed) (managed.Exte if _, err := u.client.StopStreamEncryptionWithContext(ctx, &svcsdk.StopStreamEncryptionInput{ EncryptionType: obj.StreamDescription.EncryptionType, KeyId: obj.StreamDescription.KeyId, - StreamName: pointer.String(meta.GetExternalName(cr)), + StreamName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }); err != nil { return managed.ExternalUpdate{}, errorutils.Wrap(err, errUpdate) } @@ -290,7 +290,7 @@ func (u *updater) update(ctx context.Context, mg resource.Managed) (managed.Exte if _, err := u.client.EnableEnhancedMonitoringWithContext(ctx, &svcsdk.EnableEnhancedMonitoringInput{ ShardLevelMetrics: cr.Spec.ForProvider.EnhancedMetrics[0].ShardLevelMetrics, - StreamName: pointer.String(meta.GetExternalName(cr)), + StreamName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }); err != nil { return managed.ExternalUpdate{}, errorutils.Wrap(err, errUpdate) } @@ -303,7 +303,7 @@ func (u *updater) update(ctx context.Context, mg resource.Managed) (managed.Exte if _, err := u.client.DisableEnhancedMonitoringWithContext(ctx, &svcsdk.DisableEnhancedMonitoringInput{ ShardLevelMetrics: obj.StreamDescription.EnhancedMonitoring[0].ShardLevelMetrics, - StreamName: pointer.String(meta.GetExternalName(cr)), + StreamName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }); err != nil { return managed.ExternalUpdate{}, errorutils.Wrap(err, errUpdate) } @@ -321,7 +321,7 @@ func (u *updater) update(ctx context.Context, mg resource.Managed) (managed.Exte if len(addTags) != 0 && pointer.StringValue(obj.StreamDescription.StreamStatus) == svcsdk.StreamStatusActive { if _, err := u.client.AddTagsToStreamWithContext(ctx, &svcsdk.AddTagsToStreamInput{ - StreamName: pointer.String(meta.GetExternalName(cr)), + StreamName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), Tags: addTags, }); err != nil { return managed.ExternalUpdate{}, errorutils.Wrap(err, errUpdate) @@ -333,7 +333,7 @@ func (u *updater) update(ctx context.Context, mg resource.Managed) (managed.Exte if len(removeTags) != 0 && pointer.StringValue(obj.StreamDescription.StreamStatus) == svcsdk.StreamStatusActive { if _, err := u.client.RemoveTagsFromStreamWithContext(ctx, &svcsdk.RemoveTagsFromStreamInput{ - StreamName: pointer.String(meta.GetExternalName(cr)), + StreamName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), TagKeys: removeTags, }); err != nil { return managed.ExternalUpdate{}, errorutils.Wrap(err, errUpdate) @@ -379,7 +379,7 @@ func (u *updater) ActiveShards(cr *svcapitypes.Stream) (int64, error) { var count int64 shards, err := u.client.ListShards(&svcsdk.ListShardsInput{ - StreamName: pointer.String(meta.GetExternalName(cr)), + StreamName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) if err != nil { return count, err @@ -398,7 +398,7 @@ func (u *updater) ActiveShards(cr *svcapitypes.Stream) (int64, error) { func (u *updater) ListTags(cr *svcapitypes.Stream) (*svcsdk.ListTagsForStreamOutput, error) { tags, err := u.client.ListTagsForStream(&svcsdk.ListTagsForStreamInput{ - StreamName: pointer.String(meta.GetExternalName(cr)), + StreamName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) if err != nil { return nil, err diff --git a/pkg/controller/kms/alias/setup.go b/pkg/controller/kms/alias/setup.go index e43b825508..402e9088bf 100644 --- a/pkg/controller/kms/alias/setup.go +++ b/pkg/controller/kms/alias/setup.go @@ -93,19 +93,19 @@ func preObserve(_ context.Context, cr *svcapitypes.Alias, obj *svcsdk.ListAliase } func preCreate(_ context.Context, cr *svcapitypes.Alias, obj *svcsdk.CreateAliasInput) error { - obj.AliasName = pointer.String("alias/" + meta.GetExternalName(cr)) + obj.AliasName = pointer.ToOrNilIfZeroValue("alias/" + meta.GetExternalName(cr)) obj.TargetKeyId = cr.Spec.ForProvider.TargetKeyID return nil } func preUpdate(_ context.Context, cr *svcapitypes.Alias, obj *svcsdk.UpdateAliasInput) error { - obj.AliasName = pointer.String("alias/" + meta.GetExternalName(cr)) + obj.AliasName = pointer.ToOrNilIfZeroValue("alias/" + meta.GetExternalName(cr)) obj.TargetKeyId = cr.Spec.ForProvider.TargetKeyID return nil } func preDelete(_ context.Context, cr *svcapitypes.Alias, obj *svcsdk.DeleteAliasInput) (bool, error) { - obj.AliasName = pointer.String("alias/" + meta.GetExternalName(cr)) + obj.AliasName = pointer.ToOrNilIfZeroValue("alias/" + meta.GetExternalName(cr)) return false, nil } diff --git a/pkg/controller/kms/key/setup.go b/pkg/controller/kms/key/setup.go index 4fb1a0fe6a..7a28e429fd 100644 --- a/pkg/controller/kms/key/setup.go +++ b/pkg/controller/kms/key/setup.go @@ -72,7 +72,7 @@ func SetupKey(mgr ctrl.Manager, o controller.Options) error { } func preObserve(_ context.Context, cr *svcapitypes.Key, obj *svcsdk.DescribeKeyInput) error { - obj.KeyId = pointer.String(meta.GetExternalName(cr)) + obj.KeyId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -119,7 +119,7 @@ func (u *updater) update(ctx context.Context, mg resource.Managed) (managed.Exte if cr.Spec.ForProvider.Description != nil { if _, err := u.client.UpdateKeyDescriptionWithContext(ctx, &svcsdk.UpdateKeyDescriptionInput{ - KeyId: pointer.String(meta.GetExternalName(cr)), + KeyId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), Description: cr.Spec.ForProvider.Description, }); err != nil { return managed.ExternalUpdate{}, errorutils.Wrap(err, errUpdate) @@ -128,8 +128,8 @@ func (u *updater) update(ctx context.Context, mg resource.Managed) (managed.Exte // Policy if _, err := u.client.PutKeyPolicyWithContext(ctx, &svcsdk.PutKeyPolicyInput{ - KeyId: pointer.String(meta.GetExternalName(cr)), - PolicyName: pointer.String("default"), + KeyId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), + PolicyName: pointer.ToOrNilIfZeroValue("default"), Policy: cr.Spec.ForProvider.Policy, }); err != nil { return managed.ExternalUpdate{}, errorutils.Wrap(err, errUpdate) @@ -138,14 +138,14 @@ func (u *updater) update(ctx context.Context, mg resource.Managed) (managed.Exte if pointer.BoolValue(cr.Spec.ForProvider.EnableKeyRotation) { // EnableKeyRotation if _, err := u.client.EnableKeyRotationWithContext(ctx, &svcsdk.EnableKeyRotationInput{ - KeyId: pointer.String(meta.GetExternalName(cr)), + KeyId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }); err != nil { return managed.ExternalUpdate{}, errorutils.Wrap(err, errUpdate) } } else { // DisableKeyRotation if _, err := u.client.DisableKeyRotationWithContext(ctx, &svcsdk.DisableKeyRotationInput{ - KeyId: pointer.String(meta.GetExternalName(cr)), + KeyId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }); err != nil { return managed.ExternalUpdate{}, errorutils.Wrap(err, errUpdate) } @@ -166,7 +166,7 @@ func (u *updater) update(ctx context.Context, mg resource.Managed) (managed.Exte func (u *updater) updateTags(ctx context.Context, cr *svcapitypes.Key) error { tagsOutput, err := u.client.ListResourceTagsWithContext(ctx, &svcsdk.ListResourceTagsInput{ - KeyId: pointer.String(meta.GetExternalName(cr)), + KeyId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) if err != nil { return errorutils.Wrap(err, errUpdate) @@ -176,7 +176,7 @@ func (u *updater) updateTags(ctx context.Context, cr *svcapitypes.Key) error { if len(addTags) != 0 { if _, err := u.client.TagResourceWithContext(ctx, &svcsdk.TagResourceInput{ - KeyId: pointer.String(meta.GetExternalName(cr)), + KeyId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), Tags: addTags, }); err != nil { return errorutils.Wrap(err, "cannot tag Key") @@ -184,7 +184,7 @@ func (u *updater) updateTags(ctx context.Context, cr *svcapitypes.Key) error { } if len(removeTags) != 0 { if _, err := u.client.UntagResourceWithContext(ctx, &svcsdk.UntagResourceInput{ - KeyId: pointer.String(meta.GetExternalName(cr)), + KeyId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), TagKeys: removeTags, }); err != nil { return errorutils.Wrap(err, "cannot untag Key") @@ -204,13 +204,13 @@ func (u *updater) enableDisableKey(ctx context.Context, cr *svcapitypes.Key) err if pointer.BoolValue(cr.Spec.ForProvider.Enabled) { if _, err := u.client.EnableKeyWithContext(ctx, &svcsdk.EnableKeyInput{ - KeyId: pointer.String(meta.GetExternalName(cr)), + KeyId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }); err != nil { return errorutils.Wrap(err, "cannot enable Key") } } else { if _, err := u.client.DisableKeyWithContext(ctx, &svcsdk.DisableKeyInput{ - KeyId: pointer.String(meta.GetExternalName(cr)), + KeyId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }); err != nil { return errorutils.Wrap(err, "cannot disable Key") } @@ -235,7 +235,7 @@ func (d *deleter) delete(ctx context.Context, mg resource.Managed) error { } req := &svcsdk.ScheduleKeyDeletionInput{ - KeyId: pointer.String(meta.GetExternalName(cr)), + KeyId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), } if cr.Spec.ForProvider.PendingWindowInDays != nil { @@ -256,17 +256,17 @@ func (o *observer) lateInitialize(in *svcapitypes.KeyParameters, obj *svcsdk.Des if in.Policy == nil { resPolicy, err := o.client.GetKeyPolicy(&svcsdk.GetKeyPolicyInput{ KeyId: obj.KeyMetadata.KeyId, - PolicyName: pointer.String("default"), + PolicyName: pointer.ToOrNilIfZeroValue("default"), }) if err != nil { return errorutils.Wrap(err, "cannot get key policy") } - in.Policy = pointer.LateInitializeStringPtr(in.Policy, resPolicy.Policy) + in.Policy = pointer.LateInitialize(in.Policy, resPolicy.Policy) } - in.Enabled = pointer.LateInitializeBoolPtr(in.Enabled, obj.KeyMetadata.Enabled) + in.Enabled = pointer.LateInitialize(in.Enabled, obj.KeyMetadata.Enabled) if len(in.Tags) == 0 { resTags, err := o.client.ListResourceTags(&svcsdk.ListResourceTagsInput{ @@ -305,8 +305,8 @@ func (o *observer) isUpToDate(_ context.Context, cr *svcapitypes.Key, obj *svcsd // KeyPolicy resPolicy, err := o.client.GetKeyPolicy(&svcsdk.GetKeyPolicyInput{ - KeyId: pointer.String(meta.GetExternalName(cr)), - PolicyName: pointer.String("default"), + KeyId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), + PolicyName: pointer.ToOrNilIfZeroValue("default"), }) if err != nil { return false, "", errorutils.Wrap(err, "cannot get key policy") @@ -325,7 +325,7 @@ func (o *observer) isUpToDate(_ context.Context, cr *svcapitypes.Key, obj *svcsd // EnableKeyRotation resRotation, err := o.client.GetKeyRotationStatus(&svcsdk.GetKeyRotationStatusInput{ - KeyId: pointer.String(meta.GetExternalName(cr)), + KeyId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) if err != nil { return false, "", errorutils.Wrap(err, "cannot get key rotation status") @@ -336,7 +336,7 @@ func (o *observer) isUpToDate(_ context.Context, cr *svcapitypes.Key, obj *svcsd // Tags resTags, err := o.client.ListResourceTags(&svcsdk.ListResourceTagsInput{ - KeyId: pointer.String(meta.GetExternalName(cr)), + KeyId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) if err != nil { return false, "", errorutils.Wrap(err, "cannot list tags") @@ -360,10 +360,10 @@ func diffTags(spec []*svcapitypes.Tag, current []*svcsdk.Tag) (addTags []*svcsdk removeMap[pointer.StringValue(t.TagKey)] = struct{}{} } for k, v := range addMap { - addTags = append(addTags, &svcsdk.Tag{TagKey: pointer.String(k), TagValue: pointer.String(v)}) + addTags = append(addTags, &svcsdk.Tag{TagKey: pointer.ToOrNilIfZeroValue(k), TagValue: pointer.ToOrNilIfZeroValue(v)}) } for k := range removeMap { - remove = append(remove, pointer.String(k)) + remove = append(remove, pointer.ToOrNilIfZeroValue(k)) } return } diff --git a/pkg/controller/lambda/function/setup.go b/pkg/controller/lambda/function/setup.go index 9d58b13d8d..7310421213 100644 --- a/pkg/controller/lambda/function/setup.go +++ b/pkg/controller/lambda/function/setup.go @@ -87,8 +87,8 @@ func SetupFunction(mgr ctrl.Manager, o controller.Options) error { // LateInitialize fills the empty fields in *svcapitypes.FunctionParameters with // the values seen in svcsdk.GetFunctionOutput. func LateInitialize(cr *svcapitypes.FunctionParameters, resp *svcsdk.GetFunctionOutput) error { - cr.MemorySize = pointer.LateInitializeInt64Ptr(cr.MemorySize, resp.Configuration.MemorySize) - cr.Timeout = pointer.LateInitializeInt64Ptr(cr.Timeout, resp.Configuration.Timeout) + cr.MemorySize = pointer.LateInitialize(cr.MemorySize, resp.Configuration.MemorySize) + cr.Timeout = pointer.LateInitialize(cr.Timeout, resp.Configuration.Timeout) if cr.TracingConfig == nil { cr.TracingConfig = &svcapitypes.TracingConfig{Mode: resp.Configuration.TracingConfig.Mode} } diff --git a/pkg/controller/lambda/permission/controller.go b/pkg/controller/lambda/permission/controller.go index d412b685ba..ff32758601 100644 --- a/pkg/controller/lambda/permission/controller.go +++ b/pkg/controller/lambda/permission/controller.go @@ -194,10 +194,10 @@ func (e *external) Delete(ctx context.Context, mg resource.Managed) error { } func (e *external) lateInitialize(spec, current *svcapitypes.PermissionParameters) { - spec.EventSourceToken = pointer.LateInitializeStringPtr(spec.EventSourceToken, current.EventSourceToken) - spec.PrincipalOrgID = pointer.LateInitializeStringPtr(spec.PrincipalOrgID, current.PrincipalOrgID) - spec.SourceAccount = pointer.LateInitializeStringPtr(spec.SourceAccount, current.SourceAccount) - spec.SourceArn = pointer.LateInitializeStringPtr(spec.SourceArn, current.SourceArn) + spec.EventSourceToken = pointer.LateInitialize(spec.EventSourceToken, current.EventSourceToken) + spec.PrincipalOrgID = pointer.LateInitialize(spec.PrincipalOrgID, current.PrincipalOrgID) + spec.SourceAccount = pointer.LateInitialize(spec.SourceAccount, current.SourceAccount) + spec.SourceArn = pointer.LateInitialize(spec.SourceArn, current.SourceArn) } // IsErrorNotFound helper function to test for ResourceNotFoundException error. diff --git a/pkg/controller/lambda/permission/conversion.go b/pkg/controller/lambda/permission/conversion.go index 56e417bfff..6bbe173784 100644 --- a/pkg/controller/lambda/permission/conversion.go +++ b/pkg/controller/lambda/permission/conversion.go @@ -46,7 +46,7 @@ func generateAddPermissionInput(cr *svcapitypes.Permission) *svcsdk.AddPermissio Action: &cr.Spec.ForProvider.Action, FunctionName: cr.Spec.ForProvider.FunctionName, Principal: &cr.Spec.ForProvider.Principal, - StatementId: pointer.String(meta.GetExternalName(cr)), + StatementId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), EventSourceToken: cr.Spec.ForProvider.EventSourceToken, PrincipalOrgID: cr.Spec.ForProvider.PrincipalOrgID, SourceArn: cr.Spec.ForProvider.SourceArn, @@ -57,6 +57,6 @@ func generateAddPermissionInput(cr *svcapitypes.Permission) *svcsdk.AddPermissio func generateRemovePermissionInput(cr *svcapitypes.Permission) *svcsdk.RemovePermissionInput { return &svcsdk.RemovePermissionInput{ FunctionName: cr.Spec.ForProvider.FunctionName, - StatementId: pointer.String(meta.GetExternalName(cr)), + StatementId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), } } diff --git a/pkg/controller/mq/broker/setup.go b/pkg/controller/mq/broker/setup.go index fa0fd6f580..08d716a849 100644 --- a/pkg/controller/mq/broker/setup.go +++ b/pkg/controller/mq/broker/setup.go @@ -79,7 +79,7 @@ type custom struct { } func preObserve(_ context.Context, cr *svcapitypes.Broker, obj *svcsdk.DescribeBrokerInput) error { - obj.BrokerId = pointer.String(meta.GetExternalName(cr)) + obj.BrokerId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -137,13 +137,13 @@ func (e *custom) postObserve(ctx context.Context, cr *svcapitypes.Broker, obj *s } func preDelete(_ context.Context, cr *svcapitypes.Broker, obj *svcsdk.DeleteBrokerInput) (bool, error) { - obj.BrokerId = pointer.String(meta.GetExternalName(cr)) + obj.BrokerId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } func (e *custom) preCreate(ctx context.Context, cr *svcapitypes.Broker, obj *svcsdk.CreateBrokerRequest) error { - obj.BrokerName = pointer.String(cr.Name) + obj.BrokerName = pointer.ToOrNilIfZeroValue(cr.Name) pw, _, err := mq.GetPassword(ctx, e.kube, &cr.Spec.ForProvider.CustomUsers[0].PasswordSecretRef, cr.Spec.WriteConnectionSecretToReference) if resource.IgnoreNotFound(err) != nil || pw == "" { @@ -156,7 +156,7 @@ func (e *custom) preCreate(ctx context.Context, cr *svcapitypes.Broker, obj *svc obj.Users = []*svcsdk.User{ { Username: cr.Spec.ForProvider.CustomUsers[0].Username, - Password: pointer.String(pw), + Password: pointer.ToOrNilIfZeroValue(pw), ConsoleAccess: cr.Spec.ForProvider.CustomUsers[0].ConsoleAccess, Groups: cr.Spec.ForProvider.CustomUsers[0].Groups, }, @@ -186,11 +186,11 @@ func postCreate(_ context.Context, cr *svcapitypes.Broker, obj *svcsdk.CreateBro //nolint:gocyclo func LateInitialize(cr *svcapitypes.BrokerParameters, obj *svcsdk.DescribeBrokerResponse) error { if cr.AuthenticationStrategy == nil && obj.AuthenticationStrategy != nil { - cr.AuthenticationStrategy = pointer.LateInitializeStringPtr(cr.AuthenticationStrategy, obj.AuthenticationStrategy) + cr.AuthenticationStrategy = pointer.LateInitialize(cr.AuthenticationStrategy, obj.AuthenticationStrategy) } if cr.AutoMinorVersionUpgrade == nil && obj.AutoMinorVersionUpgrade != nil { - cr.AutoMinorVersionUpgrade = pointer.LateInitializeBoolPtr(cr.AutoMinorVersionUpgrade, obj.AutoMinorVersionUpgrade) + cr.AutoMinorVersionUpgrade = pointer.LateInitialize(cr.AutoMinorVersionUpgrade, obj.AutoMinorVersionUpgrade) } if cr.EncryptionOptions == nil && obj.EncryptionOptions != nil { @@ -216,7 +216,7 @@ func LateInitialize(cr *svcapitypes.BrokerParameters, obj *svcsdk.DescribeBroker } if cr.PubliclyAccessible == nil && obj.PubliclyAccessible != nil { - cr.PubliclyAccessible = pointer.LateInitializeBoolPtr(cr.PubliclyAccessible, obj.PubliclyAccessible) + cr.PubliclyAccessible = pointer.LateInitialize(cr.PubliclyAccessible, obj.PubliclyAccessible) } return nil diff --git a/pkg/controller/mq/user/setup.go b/pkg/controller/mq/user/setup.go index 7a722f3d0e..c251319ff1 100644 --- a/pkg/controller/mq/user/setup.go +++ b/pkg/controller/mq/user/setup.go @@ -79,7 +79,7 @@ type custom struct { func preObserve(_ context.Context, cr *svcapitypes.User, obj *svcsdk.DescribeUserInput) error { obj.BrokerId = cr.Spec.ForProvider.BrokerID - obj.Username = pointer.String(meta.GetExternalName(cr)) + obj.Username = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -115,7 +115,7 @@ func (e *custom) postObserve(ctx context.Context, cr *svcapitypes.User, obj *svc func preDelete(_ context.Context, cr *svcapitypes.User, obj *svcsdk.DeleteUserInput) (bool, error) { obj.BrokerId = cr.Spec.ForProvider.BrokerID - obj.Username = pointer.String(meta.GetExternalName(cr)) + obj.Username = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } @@ -139,8 +139,8 @@ func (e *custom) preCreate(ctx context.Context, cr *svcapitypes.User, obj *svcsd if resource.IgnoreNotFound(err) != nil { return errors.Wrap(err, "cannot get password from the given secret") } - obj.Password = pointer.String(pw) - obj.Username = pointer.String(cr.Name) + obj.Password = pointer.ToOrNilIfZeroValue(pw) + obj.Username = pointer.ToOrNilIfZeroValue(cr.Name) obj.BrokerId = cr.Spec.ForProvider.BrokerID return nil } @@ -155,7 +155,7 @@ func postCreate(_ context.Context, cr *svcapitypes.User, obj *svcsdk.CreateUserO func (e *custom) preUpdate(ctx context.Context, cr *svcapitypes.User, obj *svcsdk.UpdateUserRequest) error { obj.BrokerId = cr.Spec.ForProvider.BrokerID - obj.Username = pointer.String(cr.Name) + obj.Username = pointer.ToOrNilIfZeroValue(cr.Name) pw, pwchanged, err := mq.GetPassword(ctx, e.kube, &cr.Spec.ForProvider.PasswordSecretRef, cr.Spec.WriteConnectionSecretToReference) if err != nil { diff --git a/pkg/controller/mwaa/environment/conversion.go b/pkg/controller/mwaa/environment/conversion.go index 8ecd35266c..0cdad06f04 100644 --- a/pkg/controller/mwaa/environment/conversion.go +++ b/pkg/controller/mwaa/environment/conversion.go @@ -17,8 +17,8 @@ func generateEnvironment(obj *svcsdk.GetEnvironmentOutput) *svcapitypes.Environm if obj.Environment.NetworkConfiguration != nil { res.Spec.ForProvider.NetworkConfiguration = svcapitypes.CustomNetworkConfiguration{ - SecurityGroupIDs: pointer.StringPtrSliceToValue(obj.Environment.NetworkConfiguration.SecurityGroupIds), - SubnetIDs: pointer.StringPtrSliceToValue(obj.Environment.NetworkConfiguration.SubnetIds), + SecurityGroupIDs: pointer.SlicePtrToValue(obj.Environment.NetworkConfiguration.SecurityGroupIds), + SubnetIDs: pointer.SlicePtrToValue(obj.Environment.NetworkConfiguration.SubnetIds), } } diff --git a/pkg/controller/mwaa/environment/setup.go b/pkg/controller/mwaa/environment/setup.go index e9e8184d69..e860e78b02 100644 --- a/pkg/controller/mwaa/environment/setup.go +++ b/pkg/controller/mwaa/environment/setup.go @@ -81,7 +81,7 @@ type custom struct { } func preObserve(_ context.Context, cr *svcapitypes.Environment, obj *svcsdk.GetEnvironmentInput) error { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -117,7 +117,7 @@ func preDelete(_ context.Context, cr *svcapitypes.Environment, obj *svcsdk.Delet switch pointer.StringValue(cr.Status.AtProvider.Status) { case svcsdk.EnvironmentStatusCreateFailed, svcsdk.EnvironmentStatusAvailable: - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } @@ -125,13 +125,13 @@ func preDelete(_ context.Context, cr *svcapitypes.Environment, obj *svcsdk.Delet } func (e *custom) preCreate(ctx context.Context, cr *svcapitypes.Environment, obj *svcsdk.CreateEnvironmentInput) error { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.SourceBucketArn = cr.Spec.ForProvider.SourceBucketARN obj.ExecutionRoleArn = cr.Spec.ForProvider.ExecutionRoleARN obj.KmsKey = cr.Spec.ForProvider.KMSKey obj.NetworkConfiguration = &svcsdk.NetworkConfiguration{ - SecurityGroupIds: pointer.StringSliceToPtr(cr.Spec.ForProvider.NetworkConfiguration.SecurityGroupIDs), - SubnetIds: pointer.StringSliceToPtr(cr.Spec.ForProvider.NetworkConfiguration.SubnetIDs), + SecurityGroupIds: pointer.SliceValueToPtr(cr.Spec.ForProvider.NetworkConfiguration.SecurityGroupIDs), + SubnetIds: pointer.SliceValueToPtr(cr.Spec.ForProvider.NetworkConfiguration.SubnetIDs), } return nil } @@ -141,12 +141,12 @@ func (e *custom) postCreate(ctx context.Context, cr *svcapitypes.Environment, ob return cre, err } - cliTokenRes, err := e.client.CreateCliTokenWithContext(ctx, &svcsdk.CreateCliTokenInput{Name: pointer.String(meta.GetExternalName(cr))}) + cliTokenRes, err := e.client.CreateCliTokenWithContext(ctx, &svcsdk.CreateCliTokenInput{Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))}) if err != nil { return managed.ExternalCreation{}, errors.Wrap(err, errCreateCLIToken) } - webTokenRes, err := e.client.CreateWebLoginTokenWithContext(ctx, &svcsdk.CreateWebLoginTokenInput{Name: pointer.String(meta.GetExternalName(cr))}) + webTokenRes, err := e.client.CreateWebLoginTokenWithContext(ctx, &svcsdk.CreateWebLoginTokenInput{Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))}) if err != nil { return managed.ExternalCreation{}, errors.Wrap(err, errCreateWebToken) } @@ -160,11 +160,11 @@ func (e *custom) postCreate(ctx context.Context, cr *svcapitypes.Environment, ob } func (e *custom) preUpdate(ctx context.Context, cr *svcapitypes.Environment, obj *svcsdk.UpdateEnvironmentInput) error { - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.SourceBucketArn = cr.Spec.ForProvider.SourceBucketARN obj.ExecutionRoleArn = cr.Spec.ForProvider.ExecutionRoleARN obj.NetworkConfiguration = &svcsdk.UpdateNetworkConfigurationInput{ - SecurityGroupIds: pointer.StringSliceToPtr(cr.Spec.ForProvider.NetworkConfiguration.SecurityGroupIDs), + SecurityGroupIds: pointer.SliceValueToPtr(cr.Spec.ForProvider.NetworkConfiguration.SecurityGroupIDs), } return nil } @@ -175,7 +175,7 @@ func (e *custom) postUpdate(ctx context.Context, cr *svcapitypes.Environment, ob } res, err := e.client.GetEnvironmentWithContext(ctx, &svcsdk.GetEnvironmentInput{ - Name: pointer.String(meta.GetExternalName(cr)), + Name: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) if err != nil || res.Environment == nil { return managed.ExternalUpdate{}, errors.Wrap(err, errGetEnvironemt) @@ -223,20 +223,20 @@ func lateInitialize(spec *svcapitypes.EnvironmentParameters, obj *svcsdk.GetEnvi if spec.AirflowConfigurationOptions == nil { spec.AirflowConfigurationOptions = current.AirflowConfigurationOptions } - spec.AirflowVersion = pointer.LateInitializeStringPtr(spec.AirflowVersion, current.AirflowVersion) - spec.EnvironmentClass = pointer.LateInitializeStringPtr(spec.EnvironmentClass, current.EnvironmentClass) + spec.AirflowVersion = pointer.LateInitialize(spec.AirflowVersion, current.AirflowVersion) + spec.EnvironmentClass = pointer.LateInitialize(spec.EnvironmentClass, current.EnvironmentClass) if spec.LoggingConfiguration == nil { spec.LoggingConfiguration = current.LoggingConfiguration } - spec.MaxWorkers = pointer.LateInitializeInt64Ptr(spec.MaxWorkers, current.MaxWorkers) - spec.MinWorkers = pointer.LateInitializeInt64Ptr(spec.MinWorkers, current.MinWorkers) - spec.PluginsS3ObjectVersion = pointer.LateInitializeStringPtr(spec.PluginsS3ObjectVersion, current.PluginsS3ObjectVersion) - spec.PluginsS3Path = pointer.LateInitializeStringPtr(spec.PluginsS3Path, current.PluginsS3Path) - spec.RequirementsS3ObjectVersion = pointer.LateInitializeStringPtr(spec.RequirementsS3ObjectVersion, current.RequirementsS3ObjectVersion) - spec.RequirementsS3Path = pointer.LateInitializeStringPtr(spec.RequirementsS3Path, current.RequirementsS3Path) - spec.Schedulers = pointer.LateInitializeInt64Ptr(spec.Schedulers, current.Schedulers) - spec.WebserverAccessMode = pointer.LateInitializeStringPtr(spec.WebserverAccessMode, current.WebserverAccessMode) - spec.WeeklyMaintenanceWindowStart = pointer.LateInitializeStringPtr(spec.WeeklyMaintenanceWindowStart, current.WeeklyMaintenanceWindowStart) + spec.MaxWorkers = pointer.LateInitialize(spec.MaxWorkers, current.MaxWorkers) + spec.MinWorkers = pointer.LateInitialize(spec.MinWorkers, current.MinWorkers) + spec.PluginsS3ObjectVersion = pointer.LateInitialize(spec.PluginsS3ObjectVersion, current.PluginsS3ObjectVersion) + spec.PluginsS3Path = pointer.LateInitialize(spec.PluginsS3Path, current.PluginsS3Path) + spec.RequirementsS3ObjectVersion = pointer.LateInitialize(spec.RequirementsS3ObjectVersion, current.RequirementsS3ObjectVersion) + spec.RequirementsS3Path = pointer.LateInitialize(spec.RequirementsS3Path, current.RequirementsS3Path) + spec.Schedulers = pointer.LateInitialize(spec.Schedulers, current.Schedulers) + spec.WebserverAccessMode = pointer.LateInitialize(spec.WebserverAccessMode, current.WebserverAccessMode) + spec.WeeklyMaintenanceWindowStart = pointer.LateInitialize(spec.WeeklyMaintenanceWindowStart, current.WeeklyMaintenanceWindowStart) return nil } @@ -254,7 +254,7 @@ func diffTags(spec, current map[string]*string) (map[string]*string, []*string) for k := range current { if _, exists := spec[k]; !exists { - remove = append(remove, pointer.String(k)) + remove = append(remove, pointer.ToOrNilIfZeroValue(k)) } } @@ -277,7 +277,7 @@ func (t *tagger) Initialize(ctx context.Context, mg resource.Managed) error { } for k, v := range resource.GetExternalTags(mg) { - cr.Spec.ForProvider.Tags[k] = pointer.String(v) + cr.Spec.ForProvider.Tags[k] = pointer.ToOrNilIfZeroValue(v) } return errors.Wrap(t.kube.Update(ctx, cr), errKubeUpdateFailed) } diff --git a/pkg/controller/neptune/dbcluster/setup.go b/pkg/controller/neptune/dbcluster/setup.go index b8c761828d..71b99c748c 100644 --- a/pkg/controller/neptune/dbcluster/setup.go +++ b/pkg/controller/neptune/dbcluster/setup.go @@ -160,29 +160,29 @@ func lateInitialize(in *svcapitypes.DBClusterParameters, out *svcsdk.DescribeDBC from := out.DBClusters[0] - in.AvailabilityZones = pointer.LateInitializeStringPtrSlice(in.AvailabilityZones, from.AvailabilityZones) - in.BackupRetentionPeriod = pointer.LateInitializeInt64Ptr(in.BackupRetentionPeriod, from.BackupRetentionPeriod) - in.CharacterSetName = pointer.LateInitializeStringPtr(in.CharacterSetName, from.CharacterSetName) - in.DatabaseName = pointer.LateInitializeStringPtr(in.DatabaseName, from.DatabaseName) - in.DBClusterParameterGroupName = pointer.LateInitializeStringPtr(in.DBClusterParameterGroupName, from.DBClusterParameterGroup) - in.DBSubnetGroupName = pointer.LateInitializeStringPtr(in.DBSubnetGroupName, from.DBSubnetGroup) - in.DeletionProtection = pointer.LateInitializeBoolPtr(in.DeletionProtection, from.DeletionProtection) - in.EnableCloudwatchLogsExports = pointer.LateInitializeStringPtrSlice(in.EnableCloudwatchLogsExports, from.EnabledCloudwatchLogsExports) - in.Engine = pointer.LateInitializeStringPtr(in.Engine, from.Engine) - in.EngineVersion = pointer.LateInitializeStringPtr(in.EngineVersion, from.EngineVersion) - in.EnableIAMDatabaseAuthentication = pointer.LateInitializeBoolPtr(in.EnableIAMDatabaseAuthentication, from.IAMDatabaseAuthenticationEnabled) - in.KMSKeyID = pointer.LateInitializeStringPtr(in.KMSKeyID, from.KmsKeyId) - in.MasterUsername = pointer.LateInitializeStringPtr(in.MasterUsername, from.MasterUsername) - in.Port = pointer.LateInitializeInt64Ptr(in.Port, from.Port) - in.PreferredBackupWindow = pointer.LateInitializeStringPtr(in.PreferredBackupWindow, from.PreferredBackupWindow) - in.PreferredMaintenanceWindow = pointer.LateInitializeStringPtr(in.PreferredMaintenanceWindow, from.PreferredMaintenanceWindow) - in.ReplicationSourceIdentifier = pointer.LateInitializeStringPtr(in.ReplicationSourceIdentifier, from.ReplicationSourceIdentifier) - in.StorageEncrypted = pointer.LateInitializeBoolPtr(in.StorageEncrypted, from.StorageEncrypted) + in.AvailabilityZones = pointer.LateInitializeSlice(in.AvailabilityZones, from.AvailabilityZones) + in.BackupRetentionPeriod = pointer.LateInitialize(in.BackupRetentionPeriod, from.BackupRetentionPeriod) + in.CharacterSetName = pointer.LateInitialize(in.CharacterSetName, from.CharacterSetName) + in.DatabaseName = pointer.LateInitialize(in.DatabaseName, from.DatabaseName) + in.DBClusterParameterGroupName = pointer.LateInitialize(in.DBClusterParameterGroupName, from.DBClusterParameterGroup) + in.DBSubnetGroupName = pointer.LateInitialize(in.DBSubnetGroupName, from.DBSubnetGroup) + in.DeletionProtection = pointer.LateInitialize(in.DeletionProtection, from.DeletionProtection) + in.EnableCloudwatchLogsExports = pointer.LateInitializeSlice(in.EnableCloudwatchLogsExports, from.EnabledCloudwatchLogsExports) + in.Engine = pointer.LateInitialize(in.Engine, from.Engine) + in.EngineVersion = pointer.LateInitialize(in.EngineVersion, from.EngineVersion) + in.EnableIAMDatabaseAuthentication = pointer.LateInitialize(in.EnableIAMDatabaseAuthentication, from.IAMDatabaseAuthenticationEnabled) + in.KMSKeyID = pointer.LateInitialize(in.KMSKeyID, from.KmsKeyId) + in.MasterUsername = pointer.LateInitialize(in.MasterUsername, from.MasterUsername) + in.Port = pointer.LateInitialize(in.Port, from.Port) + in.PreferredBackupWindow = pointer.LateInitialize(in.PreferredBackupWindow, from.PreferredBackupWindow) + in.PreferredMaintenanceWindow = pointer.LateInitialize(in.PreferredMaintenanceWindow, from.PreferredMaintenanceWindow) + in.ReplicationSourceIdentifier = pointer.LateInitialize(in.ReplicationSourceIdentifier, from.ReplicationSourceIdentifier) + in.StorageEncrypted = pointer.LateInitialize(in.StorageEncrypted, from.StorageEncrypted) if len(in.VPCSecurityGroupIDs) == 0 && len(from.VpcSecurityGroups) != 0 { in.VPCSecurityGroupIDs = make([]*string, len(from.VpcSecurityGroups)) for i, val := range from.VpcSecurityGroups { - in.VPCSecurityGroupIDs[i] = pointer.LateInitializeStringPtr(in.VPCSecurityGroupIDs[i], val.VpcSecurityGroupId) + in.VPCSecurityGroupIDs[i] = pointer.LateInitialize(in.VPCSecurityGroupIDs[i], val.VpcSecurityGroupId) } } return nil diff --git a/pkg/controller/prometheusservice/rulegroupsnamespace/setup.go b/pkg/controller/prometheusservice/rulegroupsnamespace/setup.go index 83f21b61e0..657fd8ca4d 100644 --- a/pkg/controller/prometheusservice/rulegroupsnamespace/setup.go +++ b/pkg/controller/prometheusservice/rulegroupsnamespace/setup.go @@ -148,7 +148,7 @@ func (t *tagger) Initialize(ctx context.Context, mg resource.Managed) error { cr.Spec.ForProvider.Tags = map[string]*string{} } for k, v := range resource.GetExternalTags(mg) { - cr.Spec.ForProvider.Tags[k] = pointer.String(v) + cr.Spec.ForProvider.Tags[k] = pointer.ToOrNilIfZeroValue(v) } return errors.Wrap(t.kube.Update(ctx, cr), errKubeUpdateFailed) } diff --git a/pkg/controller/prometheusservice/workspace/setup.go b/pkg/controller/prometheusservice/workspace/setup.go index 3244921406..c25bccfe79 100644 --- a/pkg/controller/prometheusservice/workspace/setup.go +++ b/pkg/controller/prometheusservice/workspace/setup.go @@ -139,7 +139,7 @@ func (t *tagger) Initialize(ctx context.Context, mg resource.Managed) error { cr.Spec.ForProvider.Tags = map[string]*string{} } for k, v := range resource.GetExternalTags(mg) { - cr.Spec.ForProvider.Tags[k] = pointer.String(v) + cr.Spec.ForProvider.Tags[k] = pointer.ToOrNilIfZeroValue(v) } return errors.Wrap(t.kube.Update(ctx, cr), errKubeUpdateFailed) } diff --git a/pkg/controller/ram/resourceshare/setup.go b/pkg/controller/ram/resourceshare/setup.go index dd577d8134..be4e5f8f7d 100644 --- a/pkg/controller/ram/resourceshare/setup.go +++ b/pkg/controller/ram/resourceshare/setup.go @@ -79,14 +79,14 @@ func preDelete(_ context.Context, cr *svcapitypes.ResourceShare, obj *svcsdk.Del // IdempotentParameterMismatchException: com.amazonaws.carsservice.IdempotentParameterMismatchException: // The request has the same client token as a previous request, but the requests are not the same. // client token cannot exceed 64 characters. - obj.ClientToken = pointer.String(cr.ResourceVersion) - obj.ResourceShareArn = pointer.String(meta.GetExternalName(cr)) + obj.ClientToken = pointer.ToOrNilIfZeroValue(cr.ResourceVersion) + obj.ResourceShareArn = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } func preObserve(_ context.Context, cr *svcapitypes.ResourceShare, obj *svcsdk.GetResourceSharesInput) error { - obj.MaxResults = pointer.Int64(100) - obj.ResourceOwner = pointer.String(svcsdk.ResourceOwnerSelf) + obj.MaxResults = pointer.ToIntAsInt64(100) + obj.ResourceOwner = pointer.ToOrNilIfZeroValue(svcsdk.ResourceOwnerSelf) return nil } @@ -120,7 +120,7 @@ func postObserve(_ context.Context, cr *svcapitypes.ResourceShare, obj *svcsdk.G } func preCreate(_ context.Context, cr *svcapitypes.ResourceShare, obj *svcsdk.CreateResourceShareInput) error { - obj.ClientToken = pointer.String(string(cr.UID)) + obj.ClientToken = pointer.ToOrNilIfZeroValue(string(cr.UID)) return nil } diff --git a/pkg/controller/rds/dbcluster/setup.go b/pkg/controller/rds/dbcluster/setup.go index 596b29297d..7ce6b2152f 100644 --- a/pkg/controller/rds/dbcluster/setup.go +++ b/pkg/controller/rds/dbcluster/setup.go @@ -92,7 +92,7 @@ func SetupDBCluster(mgr ctrl.Manager, o controller.Options) error { } func preObserve(_ context.Context, cr *svcapitypes.DBCluster, obj *svcsdk.DescribeDBClustersInput) error { - obj.DBClusterIdentifier = pointer.String(meta.GetExternalName(cr)) + obj.DBClusterIdentifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -156,11 +156,11 @@ func (e *custom) preCreate(ctx context.Context, cr *svcapitypes.DBCluster, obj * return errors.Wrap(err, dbinstance.ErrNoRetrievePasswordOrGenerate) } - obj.MasterUserPassword = pointer.String(pw) - obj.DBClusterIdentifier = pointer.String(meta.GetExternalName(cr)) + obj.MasterUserPassword = pointer.ToOrNilIfZeroValue(pw) + obj.DBClusterIdentifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.VpcSecurityGroupIds = make([]*string, len(cr.Spec.ForProvider.VPCSecurityGroupIDs)) for i, v := range cr.Spec.ForProvider.VPCSecurityGroupIDs { - obj.VpcSecurityGroupIds[i] = pointer.String(v) + obj.VpcSecurityGroupIds[i] = pointer.ToOrNilIfZeroValue(v) } passwordRestoreInfo := map[string]string{dbinstance.PasswordCacheKey: pw} @@ -738,19 +738,19 @@ func areVPCSecurityGroupIDsUpToDate(cr *svcapitypes.DBCluster, out *svcsdk.Descr } func (e *custom) preUpdate(ctx context.Context, cr *svcapitypes.DBCluster, obj *svcsdk.ModifyDBClusterInput) error { - obj.DBClusterIdentifier = pointer.String(meta.GetExternalName(cr)) + obj.DBClusterIdentifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.ApplyImmediately = cr.Spec.ForProvider.ApplyImmediately desiredPassword, err := dbinstance.GetDesiredPassword(ctx, e.kube, cr) if err != nil { return errors.Wrap(err, dbinstance.ErrRetrievePasswordForUpdate) } - obj.MasterUserPassword = pointer.String(desiredPassword) + obj.MasterUserPassword = pointer.ToOrNilIfZeroValue(desiredPassword) if cr.Spec.ForProvider.VPCSecurityGroupIDs != nil { obj.VpcSecurityGroupIds = make([]*string, len(cr.Spec.ForProvider.VPCSecurityGroupIDs)) for i, v := range cr.Spec.ForProvider.VPCSecurityGroupIDs { - obj.VpcSecurityGroupIds[i] = pointer.String(v) + obj.VpcSecurityGroupIds[i] = pointer.ToOrNilIfZeroValue(v) } } @@ -796,7 +796,7 @@ func (e *custom) postUpdate(ctx context.Context, cr *svcapitypes.DBCluster, obj // GenerateDescribeDBClustersInput returns an empty DescribeDBClustersInput // and the function is generated by ack-generate, so we manually need to set the // DBClusterIdentifier - input.DBClusterIdentifier = pointer.String(meta.GetExternalName(cr)) + input.DBClusterIdentifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) resp, err := e.client.DescribeDBClustersWithContext(ctx, input) if err != nil { return managed.ExternalUpdate{}, errorutils.Wrap(cpresource.Ignore(IsNotFound, err), errDescribe) @@ -808,7 +808,7 @@ func (e *custom) postUpdate(ctx context.Context, cr *svcapitypes.DBCluster, obj if needsPostUpdate { modifyInput := &svcsdk.ModifyDBClusterInput{ - DBClusterIdentifier: pointer.String(meta.GetExternalName(cr)), + DBClusterIdentifier: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), ApplyImmediately: cr.Spec.ForProvider.ApplyImmediately, DBClusterParameterGroupName: cr.Spec.ForProvider.DBClusterParameterGroupName, } @@ -844,11 +844,11 @@ func (e *custom) postUpdate(ctx context.Context, cr *svcapitypes.DBCluster, obj } func preDelete(_ context.Context, cr *svcapitypes.DBCluster, obj *svcsdk.DeleteDBClusterInput) (bool, error) { - obj.DBClusterIdentifier = pointer.String(meta.GetExternalName(cr)) - obj.SkipFinalSnapshot = pointer.Bool(cr.Spec.ForProvider.SkipFinalSnapshot) + obj.DBClusterIdentifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) + obj.SkipFinalSnapshot = pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.SkipFinalSnapshot) if !cr.Spec.ForProvider.SkipFinalSnapshot { - obj.FinalDBSnapshotIdentifier = pointer.String(cr.Spec.ForProvider.FinalDBSnapshotIdentifier) + obj.FinalDBSnapshotIdentifier = pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.FinalDBSnapshotIdentifier) } return false, nil @@ -863,7 +863,7 @@ func (e *custom) postDelete(ctx context.Context, cr *svcapitypes.DBCluster, obj } func filterList(cr *svcapitypes.DBCluster, obj *svcsdk.DescribeDBClustersOutput) *svcsdk.DescribeDBClustersOutput { - clusterIdentifier := pointer.String(meta.GetExternalName(cr)) + clusterIdentifier := pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) resp := &svcsdk.DescribeDBClustersOutput{} for _, dbCluster := range obj.DBClusters { if pointer.StringValue(dbCluster.DBClusterIdentifier) == pointer.StringValue(clusterIdentifier) { @@ -889,10 +889,10 @@ func DiffTags(spec []*svcapitypes.Tag, current []*svcsdk.Tag) (addTags []*svcsdk removeMap[pointer.StringValue(t.Key)] = pointer.StringValue(t.Value) } for k, v := range addMap { - addTags = append(addTags, &svcsdk.Tag{Key: pointer.String(k), Value: pointer.String(v)}) + addTags = append(addTags, &svcsdk.Tag{Key: pointer.ToOrNilIfZeroValue(k), Value: pointer.ToOrNilIfZeroValue(v)}) } for k := range removeMap { - remove = append(remove, pointer.String(k)) + remove = append(remove, pointer.ToOrNilIfZeroValue(k)) } return } diff --git a/pkg/controller/rds/dbclusterparametergroup/setup.go b/pkg/controller/rds/dbclusterparametergroup/setup.go index 2dede008bb..94f4e4c999 100644 --- a/pkg/controller/rds/dbclusterparametergroup/setup.go +++ b/pkg/controller/rds/dbclusterparametergroup/setup.go @@ -94,7 +94,7 @@ type custom struct { } func preObserve(_ context.Context, cr *svcapitypes.DBClusterParameterGroup, obj *svcsdk.DescribeDBClusterParameterGroupsInput) error { - obj.DBClusterParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.DBClusterParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -110,13 +110,13 @@ func (c *custom) preCreate(ctx context.Context, cr *svcapitypes.DBClusterParamet if err := c.ensureParameterGroupFamily(ctx, cr); err != nil { return errors.Wrap(err, errDetermineDBParameterGroupFamily) } - obj.DBClusterParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.DBClusterParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.DBParameterGroupFamily = cr.Spec.ForProvider.DBParameterGroupFamily return nil } func (c *custom) preUpdate(ctx context.Context, cr *svcapitypes.DBClusterParameterGroup, obj *svcsdk.ModifyDBClusterParameterGroupInput) error { - obj.DBClusterParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.DBClusterParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) currentParameters, err := c.getCurrentDBClusterParameters(ctx, cr) if err != nil { @@ -129,7 +129,7 @@ func (c *custom) preUpdate(ctx context.Context, cr *svcapitypes.DBClusterParamet if len(parametersToReset) > 0 { if _, err := c.client.ResetDBClusterParameterGroupWithContext(ctx, &svcsdk.ResetDBClusterParameterGroupInput{ DBClusterParameterGroupName: obj.DBClusterParameterGroupName, - ResetAllParameters: pointer.Bool(false), + ResetAllParameters: pointer.ToOrNilIfZeroValue(false), Parameters: parametersToReset, }); err != nil { return err @@ -185,7 +185,7 @@ func (c *custom) postUpdate(ctx context.Context, cr *svcapitypes.DBClusterParame } func preDelete(_ context.Context, cr *svcapitypes.DBClusterParameterGroup, obj *svcsdk.DeleteDBClusterParameterGroupInput) (bool, error) { - obj.DBClusterParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.DBClusterParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } @@ -218,8 +218,8 @@ func (c *custom) isUpToDate(ctx context.Context, cr *svcapitypes.DBClusterParame func (c *custom) getCurrentDBClusterParameters(ctx context.Context, cr *svcapitypes.DBClusterParameterGroup) ([]*svcsdk.Parameter, error) { input := &svcsdk.DescribeDBClusterParametersInput{ - DBClusterParameterGroupName: pointer.String(meta.GetExternalName(cr)), - MaxRecords: pointer.Int64(100), + DBClusterParameterGroupName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), + MaxRecords: pointer.ToIntAsInt64(100), } var results []*svcsdk.Parameter err := c.client.DescribeDBClusterParametersPagesWithContext(ctx, input, func(page *svcsdk.DescribeDBClusterParametersOutput, lastPage bool) bool { @@ -251,7 +251,7 @@ func (c *custom) getDBEngineVersion(ctx context.Context, selector *svcapitypes.D resp, err := c.client.DescribeDBEngineVersionsWithContext(ctx, &svcsdk.DescribeDBEngineVersionsInput{ Engine: &selector.Engine, EngineVersion: selector.EngineVersion, - DefaultOnly: pointer.Bool(selector.EngineVersion == nil), + DefaultOnly: pointer.ToOrNilIfZeroValue(selector.EngineVersion == nil), }) if err != nil { return nil, err diff --git a/pkg/controller/rds/dbinstance/setup.go b/pkg/controller/rds/dbinstance/setup.go index ca92783946..4e40987530 100644 --- a/pkg/controller/rds/dbinstance/setup.go +++ b/pkg/controller/rds/dbinstance/setup.go @@ -117,7 +117,7 @@ type custom struct { } func preObserve(_ context.Context, cr *svcapitypes.DBInstance, obj *svcsdk.DescribeDBInstancesInput) error { - obj.DBInstanceIdentifier = pointer.String(meta.GetExternalName(cr)) + obj.DBInstanceIdentifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -143,18 +143,18 @@ func (e *custom) preCreate(ctx context.Context, cr *svcapitypes.DBInstance, obj return errors.Wrap(err, dbinstance.ErrNoRetrievePasswordOrGenerate) } - obj.MasterUserPassword = pointer.String(pw) - obj.DBInstanceIdentifier = pointer.String(meta.GetExternalName(cr)) + obj.MasterUserPassword = pointer.ToOrNilIfZeroValue(pw) + obj.DBInstanceIdentifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) if len(cr.Spec.ForProvider.VPCSecurityGroupIDs) > 0 { obj.VpcSecurityGroupIds = make([]*string, len(cr.Spec.ForProvider.VPCSecurityGroupIDs)) for i, v := range cr.Spec.ForProvider.VPCSecurityGroupIDs { - obj.VpcSecurityGroupIds[i] = pointer.String(v) + obj.VpcSecurityGroupIds[i] = pointer.ToOrNilIfZeroValue(v) } } if len(cr.Spec.ForProvider.DBSecurityGroups) > 0 { obj.DBSecurityGroups = make([]*string, len(cr.Spec.ForProvider.DBSecurityGroups)) for i, v := range cr.Spec.ForProvider.DBSecurityGroups { - obj.DBSecurityGroups[i] = pointer.String(v) + obj.DBSecurityGroups[i] = pointer.ToOrNilIfZeroValue(v) } } @@ -222,19 +222,19 @@ func (e *custom) updateConnectionDetails(ctx context.Context, cr *svcapitypes.DB } func (e *custom) preUpdate(ctx context.Context, cr *svcapitypes.DBInstance, obj *svcsdk.ModifyDBInstanceInput) (err error) { - obj.DBInstanceIdentifier = pointer.String(meta.GetExternalName(cr)) + obj.DBInstanceIdentifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.ApplyImmediately = cr.Spec.ForProvider.ApplyImmediately desiredPassword, err := dbinstance.GetDesiredPassword(ctx, e.kube, cr) if err != nil { return errors.Wrap(err, dbinstance.ErrRetrievePasswordForUpdate) } - obj.MasterUserPassword = pointer.String(desiredPassword) + obj.MasterUserPassword = pointer.ToOrNilIfZeroValue(desiredPassword) if cr.Spec.ForProvider.VPCSecurityGroupIDs != nil { obj.VpcSecurityGroupIds = make([]*string, len(cr.Spec.ForProvider.VPCSecurityGroupIDs)) for i, v := range cr.Spec.ForProvider.VPCSecurityGroupIDs { - obj.VpcSecurityGroupIds[i] = pointer.String(v) + obj.VpcSecurityGroupIds[i] = pointer.ToOrNilIfZeroValue(v) } } @@ -291,9 +291,9 @@ func (e *custom) postUpdate(ctx context.Context, cr *svcapitypes.DBInstance, out } func (e *custom) preDelete(ctx context.Context, cr *svcapitypes.DBInstance, obj *svcsdk.DeleteDBInstanceInput) (bool, error) { - obj.DBInstanceIdentifier = pointer.String(meta.GetExternalName(cr)) - obj.FinalDBSnapshotIdentifier = pointer.String(cr.Spec.ForProvider.FinalDBSnapshotIdentifier) - obj.SkipFinalSnapshot = pointer.Bool(cr.Spec.ForProvider.SkipFinalSnapshot) + obj.DBInstanceIdentifier = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) + obj.FinalDBSnapshotIdentifier = pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.FinalDBSnapshotIdentifier) + obj.SkipFinalSnapshot = pointer.ToOrNilIfZeroValue(cr.Spec.ForProvider.SkipFinalSnapshot) obj.DeleteAutomatedBackups = cr.Spec.ForProvider.DeleteAutomatedBackups _, _ = e.external.Update(ctx, cr) @@ -336,22 +336,22 @@ func (e *custom) postObserve(ctx context.Context, cr *svcapitypes.DBInstance, re func lateInitialize(in *svcapitypes.DBInstanceParameters, out *svcsdk.DescribeDBInstancesOutput) error { //nolint:gocyclo // (PocketMobsters): The controller should already be checking if out is nil so we *should* have a dbinstance here, always db := out.DBInstances[0] - in.DBInstanceClass = pointer.LateInitializeStringPtr(in.DBInstanceClass, db.DBInstanceClass) - in.Engine = pointer.LateInitializeStringPtr(in.Engine, db.Engine) + in.DBInstanceClass = pointer.LateInitialize(in.DBInstanceClass, db.DBInstanceClass) + in.Engine = pointer.LateInitialize(in.Engine, db.Engine) - in.DBClusterIdentifier = pointer.LateInitializeStringPtr(in.DBClusterIdentifier, db.DBClusterIdentifier) + in.DBClusterIdentifier = pointer.LateInitialize(in.DBClusterIdentifier, db.DBClusterIdentifier) // if the instance belongs to a cluster, these fields should not be lateinit, // to allow the user to manage these via the cluster if in.DBClusterIdentifier == nil { - in.AllocatedStorage = pointer.LateInitializeInt64Ptr(in.AllocatedStorage, db.AllocatedStorage) - in.BackupRetentionPeriod = pointer.LateInitializeInt64Ptr(in.BackupRetentionPeriod, db.BackupRetentionPeriod) - in.CopyTagsToSnapshot = pointer.LateInitializeBoolPtr(in.CopyTagsToSnapshot, db.CopyTagsToSnapshot) - in.DeletionProtection = pointer.LateInitializeBoolPtr(in.DeletionProtection, db.DeletionProtection) - in.EnableIAMDatabaseAuthentication = pointer.LateInitializeBoolPtr(in.EnableIAMDatabaseAuthentication, db.IAMDatabaseAuthenticationEnabled) - in.PreferredBackupWindow = pointer.LateInitializeStringPtr(in.PreferredBackupWindow, db.PreferredBackupWindow) - in.StorageEncrypted = pointer.LateInitializeBoolPtr(in.StorageEncrypted, db.StorageEncrypted) - in.StorageType = pointer.LateInitializeStringPtr(in.StorageType, db.StorageType) - in.EngineVersion = pointer.LateInitializeStringPtr(in.EngineVersion, db.EngineVersion) + in.AllocatedStorage = pointer.LateInitialize(in.AllocatedStorage, db.AllocatedStorage) + in.BackupRetentionPeriod = pointer.LateInitialize(in.BackupRetentionPeriod, db.BackupRetentionPeriod) + in.CopyTagsToSnapshot = pointer.LateInitialize(in.CopyTagsToSnapshot, db.CopyTagsToSnapshot) + in.DeletionProtection = pointer.LateInitialize(in.DeletionProtection, db.DeletionProtection) + in.EnableIAMDatabaseAuthentication = pointer.LateInitialize(in.EnableIAMDatabaseAuthentication, db.IAMDatabaseAuthenticationEnabled) + in.PreferredBackupWindow = pointer.LateInitialize(in.PreferredBackupWindow, db.PreferredBackupWindow) + in.StorageEncrypted = pointer.LateInitialize(in.StorageEncrypted, db.StorageEncrypted) + in.StorageType = pointer.LateInitialize(in.StorageType, db.StorageType) + in.EngineVersion = pointer.LateInitialize(in.EngineVersion, db.EngineVersion) if in.DBParameterGroupName == nil { for i := range db.DBParameterGroups { if db.DBParameterGroups[i].DBParameterGroupName != nil { @@ -367,35 +367,35 @@ func lateInitialize(in *svcapitypes.DBInstanceParameters, out *svcsdk.DescribeDB } } } - in.AutoMinorVersionUpgrade = pointer.LateInitializeBoolPtr(in.AutoMinorVersionUpgrade, db.AutoMinorVersionUpgrade) - in.AvailabilityZone = pointer.LateInitializeStringPtr(in.AvailabilityZone, db.AvailabilityZone) - in.CACertificateIdentifier = pointer.LateInitializeStringPtr(in.CACertificateIdentifier, db.CACertificateIdentifier) - in.CharacterSetName = pointer.LateInitializeStringPtr(in.CharacterSetName, db.CharacterSetName) - in.DBName = pointer.LateInitializeStringPtr(in.DBName, db.DBName) - in.EnablePerformanceInsights = pointer.LateInitializeBoolPtr(in.EnablePerformanceInsights, db.PerformanceInsightsEnabled) - in.IOPS = pointer.LateInitializeInt64Ptr(in.IOPS, db.Iops) + in.AutoMinorVersionUpgrade = pointer.LateInitialize(in.AutoMinorVersionUpgrade, db.AutoMinorVersionUpgrade) + in.AvailabilityZone = pointer.LateInitialize(in.AvailabilityZone, db.AvailabilityZone) + in.CACertificateIdentifier = pointer.LateInitialize(in.CACertificateIdentifier, db.CACertificateIdentifier) + in.CharacterSetName = pointer.LateInitialize(in.CharacterSetName, db.CharacterSetName) + in.DBName = pointer.LateInitialize(in.DBName, db.DBName) + in.EnablePerformanceInsights = pointer.LateInitialize(in.EnablePerformanceInsights, db.PerformanceInsightsEnabled) + in.IOPS = pointer.LateInitialize(in.IOPS, db.Iops) kmsKey := handleKmsKey(in.KMSKeyID, db.KmsKeyId) - in.KMSKeyID = pointer.LateInitializeStringPtr(in.KMSKeyID, kmsKey) - in.LicenseModel = pointer.LateInitializeStringPtr(in.LicenseModel, db.LicenseModel) - in.MasterUsername = pointer.LateInitializeStringPtr(in.MasterUsername, db.MasterUsername) - in.MaxAllocatedStorage = pointer.LateInitializeInt64Ptr(in.MaxAllocatedStorage, db.MaxAllocatedStorage) - in.StorageThroughput = pointer.LateInitializeInt64Ptr(in.StorageThroughput, db.StorageThroughput) + in.KMSKeyID = pointer.LateInitialize(in.KMSKeyID, kmsKey) + in.LicenseModel = pointer.LateInitialize(in.LicenseModel, db.LicenseModel) + in.MasterUsername = pointer.LateInitialize(in.MasterUsername, db.MasterUsername) + in.MaxAllocatedStorage = pointer.LateInitialize(in.MaxAllocatedStorage, db.MaxAllocatedStorage) + in.StorageThroughput = pointer.LateInitialize(in.StorageThroughput, db.StorageThroughput) if pointer.Int64Value(db.MonitoringInterval) > 0 { - in.MonitoringInterval = pointer.LateInitializeInt64Ptr(in.MonitoringInterval, db.MonitoringInterval) + in.MonitoringInterval = pointer.LateInitialize(in.MonitoringInterval, db.MonitoringInterval) } - in.MonitoringRoleARN = pointer.LateInitializeStringPtr(in.MonitoringRoleARN, db.MonitoringRoleArn) - in.MultiAZ = pointer.LateInitializeBoolPtr(in.MultiAZ, db.MultiAZ) - in.PerformanceInsightsKMSKeyID = pointer.LateInitializeStringPtr(in.PerformanceInsightsKMSKeyID, db.PerformanceInsightsKMSKeyId) - in.PerformanceInsightsRetentionPeriod = pointer.LateInitializeInt64Ptr(in.PerformanceInsightsRetentionPeriod, db.PerformanceInsightsRetentionPeriod) - in.PreferredMaintenanceWindow = pointer.LateInitializeStringPtr(in.PreferredMaintenanceWindow, db.PreferredMaintenanceWindow) - in.PromotionTier = pointer.LateInitializeInt64Ptr(in.PromotionTier, db.PromotionTier) - in.PubliclyAccessible = pointer.LateInitializeBoolPtr(in.PubliclyAccessible, db.PubliclyAccessible) - in.Timezone = pointer.LateInitializeStringPtr(in.Timezone, db.Timezone) + in.MonitoringRoleARN = pointer.LateInitialize(in.MonitoringRoleARN, db.MonitoringRoleArn) + in.MultiAZ = pointer.LateInitialize(in.MultiAZ, db.MultiAZ) + in.PerformanceInsightsKMSKeyID = pointer.LateInitialize(in.PerformanceInsightsKMSKeyID, db.PerformanceInsightsKMSKeyId) + in.PerformanceInsightsRetentionPeriod = pointer.LateInitialize(in.PerformanceInsightsRetentionPeriod, db.PerformanceInsightsRetentionPeriod) + in.PreferredMaintenanceWindow = pointer.LateInitialize(in.PreferredMaintenanceWindow, db.PreferredMaintenanceWindow) + in.PromotionTier = pointer.LateInitialize(in.PromotionTier, db.PromotionTier) + in.PubliclyAccessible = pointer.LateInitialize(in.PubliclyAccessible, db.PubliclyAccessible) + in.Timezone = pointer.LateInitialize(in.Timezone, db.Timezone) if db.Endpoint != nil { - in.Port = pointer.LateInitializeInt64Ptr(in.Port, db.Endpoint.Port) + in.Port = pointer.LateInitialize(in.Port, db.Endpoint.Port) } if len(in.DBSecurityGroups) == 0 && len(db.DBSecurityGroups) != 0 { diff --git a/pkg/controller/rds/dbparametergroup/setup.go b/pkg/controller/rds/dbparametergroup/setup.go index 7ef1e8339f..6f8ad93d06 100644 --- a/pkg/controller/rds/dbparametergroup/setup.go +++ b/pkg/controller/rds/dbparametergroup/setup.go @@ -94,7 +94,7 @@ type custom struct { } func preObserve(_ context.Context, cr *svcapitypes.DBParameterGroup, obj *svcsdk.DescribeDBParameterGroupsInput) error { - obj.DBParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.DBParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -110,13 +110,13 @@ func (c *custom) preCreate(ctx context.Context, cr *svcapitypes.DBParameterGroup if err := c.ensureParameterGroupFamily(ctx, cr); err != nil { return errors.Wrap(err, errDetermineDBParameterGroupFamily) } - obj.DBParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.DBParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.DBParameterGroupFamily = cr.Spec.ForProvider.DBParameterGroupFamily return nil } func (c *custom) preUpdate(ctx context.Context, cr *svcapitypes.DBParameterGroup, obj *svcsdk.ModifyDBParameterGroupInput) error { - obj.DBParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.DBParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) currentParameters, err := c.getCurrentDBParameters(ctx, cr) if err != nil { @@ -129,7 +129,7 @@ func (c *custom) preUpdate(ctx context.Context, cr *svcapitypes.DBParameterGroup if len(parametersToReset) > 0 { if _, err := c.client.ResetDBParameterGroupWithContext(ctx, &svcsdk.ResetDBParameterGroupInput{ DBParameterGroupName: obj.DBParameterGroupName, - ResetAllParameters: pointer.Bool(false), + ResetAllParameters: pointer.ToOrNilIfZeroValue(false), Parameters: parametersToReset, }); err != nil { return err @@ -185,7 +185,7 @@ func (c *custom) postUpdate(ctx context.Context, cr *svcapitypes.DBParameterGrou } func preDelete(_ context.Context, cr *svcapitypes.DBParameterGroup, obj *svcsdk.DeleteDBParameterGroupInput) (bool, error) { - obj.DBParameterGroupName = pointer.String(meta.GetExternalName(cr)) + obj.DBParameterGroupName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } @@ -218,8 +218,8 @@ func (c *custom) isUpToDate(ctx context.Context, cr *svcapitypes.DBParameterGrou func (c *custom) getCurrentDBParameters(ctx context.Context, cr *svcapitypes.DBParameterGroup) ([]*svcsdk.Parameter, error) { input := &svcsdk.DescribeDBParametersInput{ - DBParameterGroupName: pointer.String(meta.GetExternalName(cr)), - MaxRecords: pointer.Int64(100), + DBParameterGroupName: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), + MaxRecords: pointer.ToIntAsInt64(100), } var results []*svcsdk.Parameter err := c.client.DescribeDBParametersPagesWithContext(ctx, input, func(page *svcsdk.DescribeDBParametersOutput, lastPage bool) bool { @@ -251,7 +251,7 @@ func (c *custom) getDBEngineVersion(ctx context.Context, selector *svcapitypes.D resp, err := c.client.DescribeDBEngineVersionsWithContext(ctx, &svcsdk.DescribeDBEngineVersionsInput{ Engine: &selector.Engine, EngineVersion: selector.EngineVersion, - DefaultOnly: pointer.Bool(selector.EngineVersion == nil), + DefaultOnly: pointer.ToOrNilIfZeroValue(selector.EngineVersion == nil), }) if err != nil { return nil, err diff --git a/pkg/controller/rds/utils/tags.go b/pkg/controller/rds/utils/tags.go index 28fbc022a8..f3da92849a 100644 --- a/pkg/controller/rds/utils/tags.go +++ b/pkg/controller/rds/utils/tags.go @@ -106,14 +106,14 @@ func DiffTags(spec []*svcapitypes.Tag, current []*svcsdk.Tag) (addTags []*svcsdk if currentVal != val { removeTags = append(removeTags, t.Key) addTags = append(addTags, &svcsdk.Tag{ - Key: pointer.String(key), - Value: pointer.String(val), + Key: pointer.ToOrNilIfZeroValue(key), + Value: pointer.ToOrNilIfZeroValue(val), }) } } else { addTags = append(addTags, &svcsdk.Tag{ - Key: pointer.String(key), - Value: pointer.String(val), + Key: pointer.ToOrNilIfZeroValue(key), + Value: pointer.ToOrNilIfZeroValue(val), }) } } @@ -121,7 +121,7 @@ func DiffTags(spec []*svcapitypes.Tag, current []*svcsdk.Tag) (addTags []*svcsdk for _, t := range current { key := pointer.StringValue(t.Key) if _, exists := specMap[key]; !exists { - removeTags = append(removeTags, pointer.String(key)) + removeTags = append(removeTags, pointer.ToOrNilIfZeroValue(key)) } } @@ -149,7 +149,7 @@ func AddExternalTags(mg resource.Managed, spec []*svcapitypes.Tag) []*svcapitype func GetExternalTags(mg resource.Managed) []*svcapitypes.Tag { externalTags := []*svcapitypes.Tag{} for k, v := range resource.GetExternalTags(mg) { - externalTags = append(externalTags, &svcapitypes.Tag{Key: pointer.String(k), Value: pointer.String(v)}) + externalTags = append(externalTags, &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(k), Value: pointer.ToOrNilIfZeroValue(v)}) } sort.Slice(externalTags, func(i, j int) bool { diff --git a/pkg/controller/route53resolver/resolverruleassociation/hooks.go b/pkg/controller/route53resolver/resolverruleassociation/hooks.go index ab70646213..93d0beb2df 100644 --- a/pkg/controller/route53resolver/resolverruleassociation/hooks.go +++ b/pkg/controller/route53resolver/resolverruleassociation/hooks.go @@ -116,7 +116,7 @@ func (e *external) Observe(ctx context.Context, mg resource.Managed) (managed.Ex }, nil } - res, err := e.client.GetResolverRuleAssociation(ctx, resolverruleassociation.GenerateGetAssociateResolverRuleAssociationInput(pointer.String(meta.GetExternalName(cr)))) + res, err := e.client.GetResolverRuleAssociation(ctx, resolverruleassociation.GenerateGetAssociateResolverRuleAssociationInput(pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)))) if err != nil { return managed.ExternalObservation{}, errorutils.Wrap(resource.Ignore(resolverruleassociation.IsNotFound, err), errGet) } diff --git a/pkg/controller/s3/bucket/CORSConfig.go b/pkg/controller/s3/bucket/CORSConfig.go index cc4a83d60b..ed7a9c7b04 100644 --- a/pkg/controller/s3/bucket/CORSConfig.go +++ b/pkg/controller/s3/bucket/CORSConfig.go @@ -46,7 +46,7 @@ func NewCORSConfigurationClient(client s3.BucketClient) *CORSConfigurationClient // Observe checks if the resource exists and if it matches the local configuration func (in *CORSConfigurationClient) Observe(ctx context.Context, bucket *v1beta1.Bucket) (ResourceStatus, error) { - result, err := in.client.GetBucketCors(ctx, &awss3.GetBucketCorsInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + result, err := in.client.GetBucketCors(ctx, &awss3.GetBucketCorsInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if resource.Ignore(s3.CORSConfigurationNotFound, err) != nil { return NeedsUpdate, errorutils.Wrap(err, corsGetFailed) } @@ -75,7 +75,7 @@ func (in *CORSConfigurationClient) CreateOrUpdate(ctx context.Context, bucket *v func (in *CORSConfigurationClient) Delete(ctx context.Context, bucket *v1beta1.Bucket) error { _, err := in.client.DeleteBucketCors(ctx, &awss3.DeleteBucketCorsInput{ - Bucket: pointer.String(meta.GetExternalName(bucket)), + Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket)), }, ) return errorutils.Wrap(err, corsDeleteFailed) @@ -84,7 +84,7 @@ func (in *CORSConfigurationClient) Delete(ctx context.Context, bucket *v1beta1.B // LateInitialize does nothing because CORSConfiguration might have been deleted // by the user. func (in *CORSConfigurationClient) LateInitialize(ctx context.Context, bucket *v1beta1.Bucket) error { - external, err := in.client.GetBucketCors(ctx, &awss3.GetBucketCorsInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketCors(ctx, &awss3.GetBucketCorsInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if err != nil { return errorutils.Wrap(resource.Ignore(s3.CORSConfigurationNotFound, err), corsGetFailed) } @@ -115,7 +115,7 @@ func (in *CORSConfigurationClient) SubresourceExists(bucket *v1beta1.Bucket) boo // GeneratePutBucketCorsInput creates the input for the PutBucketCors request for the S3 Client func GeneratePutBucketCorsInput(name string, config *v1beta1.CORSConfiguration) *awss3.PutBucketCorsInput { bci := &awss3.PutBucketCorsInput{ - Bucket: pointer.String(name), + Bucket: pointer.ToOrNilIfZeroValue(name), CORSConfiguration: &types.CORSConfiguration{CORSRules: make([]types.CORSRule, 0)}, } for _, cors := range config.CORSRules { diff --git a/pkg/controller/s3/bucket/accelerateConfig.go b/pkg/controller/s3/bucket/accelerateConfig.go index e966e56b3f..56a9f96a4e 100644 --- a/pkg/controller/s3/bucket/accelerateConfig.go +++ b/pkg/controller/s3/bucket/accelerateConfig.go @@ -46,7 +46,7 @@ func NewAccelerateConfigurationClient(client s3.BucketClient) *AccelerateConfigu // Observe checks if the resource exists and if it matches the local configuration func (in *AccelerateConfigurationClient) Observe(ctx context.Context, bucket *v1beta1.Bucket) (ResourceStatus, error) { - external, err := in.client.GetBucketAccelerateConfiguration(ctx, &awss3.GetBucketAccelerateConfigurationInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketAccelerateConfiguration(ctx, &awss3.GetBucketAccelerateConfigurationInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if err != nil { // Short stop method for requests in a region without Acceleration Support if s3.MethodNotSupported(err) || s3.ArgumentNotSupported(err) { @@ -78,7 +78,7 @@ func (*AccelerateConfigurationClient) Delete(_ context.Context, _ *v1beta1.Bucke // LateInitialize is responsible for initializing the resource based on the external value func (in *AccelerateConfigurationClient) LateInitialize(ctx context.Context, bucket *v1beta1.Bucket) error { - external, err := in.client.GetBucketAccelerateConfiguration(ctx, &awss3.GetBucketAccelerateConfigurationInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketAccelerateConfiguration(ctx, &awss3.GetBucketAccelerateConfigurationInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if err != nil { // Short stop method for requests without Acceleration Support if s3.MethodNotSupported(err) || s3.ArgumentNotSupported(err) { @@ -96,9 +96,9 @@ func (in *AccelerateConfigurationClient) LateInitialize(ctx context.Context, buc bucket.Spec.ForProvider.AccelerateConfiguration = &v1beta1.AccelerateConfiguration{} } - bucket.Spec.ForProvider.AccelerateConfiguration.Status = pointer.LateInitializeString( + bucket.Spec.ForProvider.AccelerateConfiguration.Status = pointer.LateInitializeValueFromPtr( bucket.Spec.ForProvider.AccelerateConfiguration.Status, - pointer.String(string(external.Status))) + pointer.ToOrNilIfZeroValue(string(external.Status))) return nil } @@ -110,7 +110,7 @@ func (in *AccelerateConfigurationClient) SubresourceExists(bucket *v1beta1.Bucke // GenerateAccelerateConfigurationInput creates the input for the AccelerateConfiguration request for the S3 Client func GenerateAccelerateConfigurationInput(name string, config *v1beta1.AccelerateConfiguration) *awss3.PutBucketAccelerateConfigurationInput { return &awss3.PutBucketAccelerateConfigurationInput{ - Bucket: pointer.String(name), + Bucket: pointer.ToOrNilIfZeroValue(name), AccelerateConfiguration: &awss3types.AccelerateConfiguration{Status: awss3types.BucketAccelerateStatus(config.Status)}, } } diff --git a/pkg/controller/s3/bucket/lifecycleConfig.go b/pkg/controller/s3/bucket/lifecycleConfig.go index 6ec631fca4..c362ba315d 100644 --- a/pkg/controller/s3/bucket/lifecycleConfig.go +++ b/pkg/controller/s3/bucket/lifecycleConfig.go @@ -53,7 +53,7 @@ func NewLifecycleConfigurationClient(client s3.BucketClient) *LifecycleConfigura // Observe checks if the resource exists and if it matches the local configuration func (in *LifecycleConfigurationClient) Observe(ctx context.Context, bucket *v1beta1.Bucket) (ResourceStatus, error) { - response, err := in.client.GetBucketLifecycleConfiguration(ctx, &awss3.GetBucketLifecycleConfigurationInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + response, err := in.client.GetBucketLifecycleConfiguration(ctx, &awss3.GetBucketLifecycleConfigurationInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if bucket.Spec.ForProvider.LifecycleConfiguration == nil && s3.LifecycleConfigurationNotFound(err) { return Updated, nil } @@ -98,7 +98,7 @@ func (in *LifecycleConfigurationClient) CreateOrUpdate(ctx context.Context, buck func (in *LifecycleConfigurationClient) Delete(ctx context.Context, bucket *v1beta1.Bucket) error { _, err := in.client.DeleteBucketLifecycle(ctx, &awss3.DeleteBucketLifecycleInput{ - Bucket: pointer.String(meta.GetExternalName(bucket)), + Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket)), }, ) return errorutils.Wrap(err, lifecycleDeleteFailed) @@ -107,7 +107,7 @@ func (in *LifecycleConfigurationClient) Delete(ctx context.Context, bucket *v1be // LateInitialize does nothing because LifecycleConfiguration might have been be // deleted by the user. func (in *LifecycleConfigurationClient) LateInitialize(ctx context.Context, bucket *v1beta1.Bucket) error { - external, err := in.client.GetBucketLifecycleConfiguration(ctx, &awss3.GetBucketLifecycleConfigurationInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketLifecycleConfiguration(ctx, &awss3.GetBucketLifecycleConfigurationInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if err != nil { return errorutils.Wrap(resource.Ignore(s3.LifecycleConfigurationNotFound, err), lifecycleGetFailed) } @@ -140,7 +140,7 @@ func GenerateLifecycleConfiguration(name string, config *v1beta1.BucketLifecycle return nil } return &awss3.PutBucketLifecycleConfigurationInput{ - Bucket: pointer.String(name), + Bucket: pointer.ToOrNilIfZeroValue(name), LifecycleConfiguration: &types.BucketLifecycleConfiguration{Rules: GenerateLifecycleRules(config.Rules)}, } } @@ -200,7 +200,7 @@ func GenerateLifecycleRules(in []v1beta1.LifecycleRule) []types.LifecycleRule { rule.Filter = &types.LifecycleRuleFilterMemberPrefix{Value: *local.Filter.Prefix} } if local.Filter.Tag != nil { - rule.Filter = &types.LifecycleRuleFilterMemberTag{Value: types.Tag{Key: pointer.String(local.Filter.Tag.Key), Value: pointer.String(local.Filter.Tag.Value)}} + rule.Filter = &types.LifecycleRuleFilterMemberTag{Value: types.Tag{Key: pointer.ToOrNilIfZeroValue(local.Filter.Tag.Key), Value: pointer.ToOrNilIfZeroValue(local.Filter.Tag.Value)}} } if local.Filter.And != nil { andOperator := types.LifecycleRuleAndOperator{ diff --git a/pkg/controller/s3/bucket/lifecycleConfig_test.go b/pkg/controller/s3/bucket/lifecycleConfig_test.go index 7db1468675..5c9cc31e9b 100644 --- a/pkg/controller/s3/bucket/lifecycleConfig_test.go +++ b/pkg/controller/s3/bucket/lifecycleConfig_test.go @@ -63,11 +63,11 @@ func generateLifecycleConfig() *v1beta1.BucketLifecycleConfiguration { }, Filter: &v1beta1.LifecycleRuleFilter{ And: &v1beta1.LifecycleRuleAndOperator{ - Prefix: pointer.String(prefix), + Prefix: pointer.ToOrNilIfZeroValue(prefix), Tags: tags, }, }, - ID: pointer.String(id), + ID: pointer.ToOrNilIfZeroValue(id), NoncurrentVersionExpiration: &v1beta1.NoncurrentVersionExpiration{NoncurrentDays: days}, NoncurrentVersionTransitions: []v1beta1.NoncurrentVersionTransition{{ NoncurrentDays: days, @@ -96,11 +96,11 @@ func generateAWSLifecycle(sortTag bool) *s3types.BucketLifecycleConfiguration { }, Filter: &s3types.LifecycleRuleFilterMemberAnd{ Value: s3types.LifecycleRuleAndOperator{ - Prefix: pointer.String(prefix), + Prefix: pointer.ToOrNilIfZeroValue(prefix), Tags: awsTags, }, }, - ID: pointer.String(id), + ID: pointer.ToOrNilIfZeroValue(id), NoncurrentVersionExpiration: &s3types.NoncurrentVersionExpiration{NoncurrentDays: days}, NoncurrentVersionTransitions: []s3types.NoncurrentVersionTransition{{ NoncurrentDays: days, diff --git a/pkg/controller/s3/bucket/loggingConfig.go b/pkg/controller/s3/bucket/loggingConfig.go index 03dbc6cc7d..f529e97eb3 100644 --- a/pkg/controller/s3/bucket/loggingConfig.go +++ b/pkg/controller/s3/bucket/loggingConfig.go @@ -50,7 +50,7 @@ func NewLoggingConfigurationClient(client s3.BucketClient) *LoggingConfiguration // Observe checks if the resource exists and if it matches the local configuration func (in *LoggingConfigurationClient) Observe(ctx context.Context, bucket *v1beta1.Bucket) (ResourceStatus, error) { - external, err := in.client.GetBucketLogging(ctx, &awss3.GetBucketLoggingInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketLogging(ctx, &awss3.GetBucketLoggingInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if err != nil { return NeedsUpdate, errorutils.Wrap(err, loggingGetFailed) } @@ -78,7 +78,7 @@ func (*LoggingConfigurationClient) Delete(_ context.Context, _ *v1beta1.Bucket) // LateInitialize is responsible for initializing the resource based on the external value func (in *LoggingConfigurationClient) LateInitialize(ctx context.Context, bucket *v1beta1.Bucket) error { - external, err := in.client.GetBucketLogging(ctx, &awss3.GetBucketLoggingInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketLogging(ctx, &awss3.GetBucketLoggingInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if err != nil { return errorutils.Wrap(err, loggingGetFailed) } @@ -95,8 +95,8 @@ func (in *LoggingConfigurationClient) LateInitialize(ctx context.Context, bucket config := bucket.Spec.ForProvider.LoggingConfiguration // Late initialize the target Bucket and target prefix - config.TargetBucket = pointer.LateInitializeStringPtr(config.TargetBucket, external.LoggingEnabled.TargetBucket) - config.TargetPrefix = pointer.LateInitializeString(config.TargetPrefix, external.LoggingEnabled.TargetPrefix) + config.TargetBucket = pointer.LateInitialize(config.TargetBucket, external.LoggingEnabled.TargetBucket) + config.TargetPrefix = pointer.LateInitializeValueFromPtr(config.TargetPrefix, external.LoggingEnabled.TargetPrefix) // If the there is an external target grant list, and the local one does not exist // we create the target grant list if len(external.LoggingEnabled.TargetGrants) != 0 && config.TargetGrants == nil { @@ -125,11 +125,11 @@ func (in *LoggingConfigurationClient) SubresourceExists(bucket *v1beta1.Bucket) // GeneratePutBucketLoggingInput creates the input for the PutBucketLogging request for the S3 Client func GeneratePutBucketLoggingInput(name string, config *v1beta1.LoggingConfiguration) *awss3.PutBucketLoggingInput { bci := &awss3.PutBucketLoggingInput{ - Bucket: pointer.String(name), + Bucket: pointer.ToOrNilIfZeroValue(name), BucketLoggingStatus: &types.BucketLoggingStatus{LoggingEnabled: &types.LoggingEnabled{ TargetBucket: config.TargetBucket, TargetGrants: make([]types.TargetGrant, 0), - TargetPrefix: pointer.String(config.TargetPrefix), + TargetPrefix: pointer.ToOrNilIfZeroValue(config.TargetPrefix), }}, } for _, grant := range config.TargetGrants { @@ -154,7 +154,7 @@ func GenerateAWSLogging(local *v1beta1.LoggingConfiguration) *types.LoggingEnabl } output := types.LoggingEnabled{ TargetBucket: local.TargetBucket, - TargetPrefix: pointer.String(local.TargetPrefix), + TargetPrefix: pointer.ToOrNilIfZeroValue(local.TargetPrefix), } if local.TargetGrants != nil { output.TargetGrants = make([]types.TargetGrant, len(local.TargetGrants)) diff --git a/pkg/controller/s3/bucket/notificationConfig.go b/pkg/controller/s3/bucket/notificationConfig.go index 94a2156dcf..9d3ac4a16c 100644 --- a/pkg/controller/s3/bucket/notificationConfig.go +++ b/pkg/controller/s3/bucket/notificationConfig.go @@ -53,7 +53,7 @@ func NewNotificationConfigurationClient(client s3.BucketClient) *NotificationCon // Observe checks if the resource exists and if it matches the local configuration func (in *NotificationConfigurationClient) Observe(ctx context.Context, bucket *v1beta1.Bucket) (ResourceStatus, error) { - external, err := in.client.GetBucketNotificationConfiguration(ctx, &awss3.GetBucketNotificationConfigurationInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketNotificationConfiguration(ctx, &awss3.GetBucketNotificationConfigurationInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if err != nil { return NeedsUpdate, errorutils.Wrap(err, notificationGetFailed) } @@ -173,7 +173,7 @@ func GenerateLambdaConfiguration(config *v1beta1.NotificationConfiguration) []ty conf := types.LambdaFunctionConfiguration{ Filter: nil, Id: v.ID, - LambdaFunctionArn: pointer.String(v.LambdaFunctionArn), + LambdaFunctionArn: pointer.ToOrNilIfZeroValue(v.LambdaFunctionArn), } if v.Events != nil { conf.Events = copyEvents(v.Events) @@ -270,7 +270,7 @@ func GenerateConfiguration(config *v1beta1.NotificationConfiguration) *types.Not // GenerateNotificationConfigurationInput creates the input for the LifecycleConfiguration request for the S3 Client func GenerateNotificationConfigurationInput(name string, config *v1beta1.NotificationConfiguration) *awss3.PutBucketNotificationConfigurationInput { return &awss3.PutBucketNotificationConfigurationInput{ - Bucket: pointer.String(name), + Bucket: pointer.ToOrNilIfZeroValue(name), NotificationConfiguration: GenerateConfiguration(config), } } @@ -292,7 +292,7 @@ func (*NotificationConfigurationClient) Delete(_ context.Context, _ *v1beta1.Buc // LateInitialize is responsible for initializing the resource based on the external value func (in *NotificationConfigurationClient) LateInitialize(ctx context.Context, bucket *v1beta1.Bucket) error { - external, err := in.client.GetBucketNotificationConfiguration(ctx, &awss3.GetBucketNotificationConfigurationInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketNotificationConfiguration(ctx, &awss3.GetBucketNotificationConfigurationInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if err != nil { return errorutils.Wrap(err, notificationGetFailed) } @@ -376,8 +376,8 @@ func LateInitializeLambda(external []types.LambdaFunctionConfiguration, local [] local[i] = v1beta1.LambdaFunctionConfiguration{ Events: LateInitializeEvents(local[i].Events, v.Events), Filter: LateInitializeFilter(local[i].Filter, v.Filter), - ID: pointer.LateInitializeStringPtr(local[i].ID, v.Id), - LambdaFunctionArn: pointer.LateInitializeString(local[i].LambdaFunctionArn, v.LambdaFunctionArn), + ID: pointer.LateInitialize(local[i].ID, v.Id), + LambdaFunctionArn: pointer.LateInitializeValueFromPtr(local[i].LambdaFunctionArn, v.LambdaFunctionArn), } } return local @@ -393,8 +393,8 @@ func LateInitializeQueue(external []types.QueueConfiguration, local []v1beta1.Qu local[i] = v1beta1.QueueConfiguration{ Events: LateInitializeEvents(local[i].Events, v.Events), Filter: LateInitializeFilter(local[i].Filter, v.Filter), - ID: pointer.LateInitializeStringPtr(local[i].ID, v.Id), - QueueArn: pointer.LateInitializeStringPtr(local[i].QueueArn, v.QueueArn), + ID: pointer.LateInitialize(local[i].ID, v.Id), + QueueArn: pointer.LateInitialize(local[i].QueueArn, v.QueueArn), } } return local @@ -410,8 +410,8 @@ func LateInitializeTopic(external []types.TopicConfiguration, local []v1beta1.To local[i] = v1beta1.TopicConfiguration{ Events: LateInitializeEvents(local[i].Events, v.Events), Filter: LateInitializeFilter(local[i].Filter, v.Filter), - ID: pointer.LateInitializeStringPtr(local[i].ID, v.Id), - TopicArn: pointer.LateInitializeStringPtr(local[i].TopicArn, v.TopicArn), + ID: pointer.LateInitialize(local[i].ID, v.Id), + TopicArn: pointer.LateInitialize(local[i].TopicArn, v.TopicArn), } } return local diff --git a/pkg/controller/s3/bucket/notificationConfig_test.go b/pkg/controller/s3/bucket/notificationConfig_test.go index 9c038b6ae3..c7098d7c91 100644 --- a/pkg/controller/s3/bucket/notificationConfig_test.go +++ b/pkg/controller/s3/bucket/notificationConfig_test.go @@ -85,7 +85,7 @@ func generateNotificationConfig() *v1beta1.NotificationConfiguration { Events: generateNotificationEvents(), Filter: generateNotificationFilter(), ID: &id, - QueueArn: pointer.String(queueArn), + QueueArn: pointer.ToOrNilIfZeroValue(queueArn), }}, TopicConfigurations: []v1beta1.TopicConfiguration{{ Events: generateNotificationEvents(), @@ -408,7 +408,7 @@ func TestIsNotificationConfigurationUpToDate(t *testing.T) { Events: generateNotificationEvents(), Filter: generateNotificationFilter(), ID: &id, - QueueArn: pointer.String(queueArn), + QueueArn: pointer.ToOrNilIfZeroValue(queueArn), }}, TopicConfigurations: []v1beta1.TopicConfiguration{{ Events: generateNotificationEvents(), @@ -448,19 +448,19 @@ func TestIsNotificationConfigurationUpToDate(t *testing.T) { LambdaFunctionConfigurations: []v1beta1.LambdaFunctionConfiguration{{ Events: generateNotificationEvents(), Filter: generateNotificationFilter(), - ID: pointer.String("lambda-id-1"), + ID: pointer.ToOrNilIfZeroValue("lambda-id-1"), LambdaFunctionArn: lambdaArn, }}, QueueConfigurations: []v1beta1.QueueConfiguration{{ Events: generateNotificationEvents(), Filter: generateNotificationFilter(), - ID: pointer.String("queue-id-1"), - QueueArn: pointer.String(queueArn), + ID: pointer.ToOrNilIfZeroValue("queue-id-1"), + QueueArn: pointer.ToOrNilIfZeroValue(queueArn), }}, TopicConfigurations: []v1beta1.TopicConfiguration{{ Events: generateNotificationEvents(), Filter: generateNotificationFilter(), - ID: pointer.String("topic-id-1"), + ID: pointer.ToOrNilIfZeroValue("topic-id-1"), TopicArn: &topicArn, }}, }, @@ -468,19 +468,19 @@ func TestIsNotificationConfigurationUpToDate(t *testing.T) { LambdaFunctionConfigurations: []s3types.LambdaFunctionConfiguration{{ Events: generateNotificationAWSEvents(), Filter: generateAWSNotificationFilter(), - Id: pointer.String("lambda-id-2"), + Id: pointer.ToOrNilIfZeroValue("lambda-id-2"), LambdaFunctionArn: &lambdaArn, }}, QueueConfigurations: []s3types.QueueConfiguration{{ Events: generateNotificationAWSEvents(), Filter: generateAWSNotificationFilter(), - Id: pointer.String("queue-id-2"), + Id: pointer.ToOrNilIfZeroValue("queue-id-2"), QueueArn: &queueArn, }}, TopicConfigurations: []s3types.TopicConfiguration{{ Events: generateNotificationAWSEvents(), Filter: generateAWSNotificationFilter(), - Id: pointer.String("topic-id-2"), + Id: pointer.ToOrNilIfZeroValue("topic-id-2"), TopicArn: &topicArn, }}, }, @@ -501,7 +501,7 @@ func TestIsNotificationConfigurationUpToDate(t *testing.T) { { Events: generateNotificationEvents(), Filter: generateNotificationFilter(), - ID: pointer.String("test-id-2"), + ID: pointer.ToOrNilIfZeroValue("test-id-2"), LambdaFunctionArn: "lambda:321", }}, }, @@ -510,8 +510,8 @@ func TestIsNotificationConfigurationUpToDate(t *testing.T) { { Events: generateNotificationAWSEvents(), Filter: generateAWSNotificationFilter(), - Id: pointer.String("test-id-2"), - LambdaFunctionArn: pointer.String("lambda:321"), + Id: pointer.ToOrNilIfZeroValue("test-id-2"), + LambdaFunctionArn: pointer.ToOrNilIfZeroValue("lambda:321"), }, { Events: generateNotificationAWSEvents(), diff --git a/pkg/controller/s3/bucket/policy.go b/pkg/controller/s3/bucket/policy.go index 5d1c038a2c..0fa31e288e 100644 --- a/pkg/controller/s3/bucket/policy.go +++ b/pkg/controller/s3/bucket/policy.go @@ -48,7 +48,7 @@ func NewPolicyClient(client s3.BucketPolicyClient) *PolicyClient { // Observe checks if the resource exists and if it matches the local configuration func (e *PolicyClient) Observe(ctx context.Context, cr *v1beta1.Bucket) (ResourceStatus, error) { resp, err := e.client.GetBucketPolicy(ctx, &awss3.GetBucketPolicyInput{ - Bucket: pointer.String(meta.GetExternalName(cr)), + Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) if err != nil { if s3.IsErrorPolicyNotFound(err) { @@ -87,7 +87,7 @@ func (e *PolicyClient) CreateOrUpdate(ctx context.Context, cr *v1beta1.Bucket) e return errors.Wrap(err, policyFormatFailed) } _, err = e.client.PutBucketPolicy(ctx, &awss3.PutBucketPolicyInput{ - Bucket: pointer.String(meta.GetExternalName(cr)), + Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), Policy: policy, }) return errors.Wrap(err, policyPutFailed) @@ -96,7 +96,7 @@ func (e *PolicyClient) CreateOrUpdate(ctx context.Context, cr *v1beta1.Bucket) e // Delete removes the public access block configuration. func (e *PolicyClient) Delete(ctx context.Context, cr *v1beta1.Bucket) error { _, err := e.client.DeleteBucketPolicy(ctx, &awss3.DeleteBucketPolicyInput{ - Bucket: pointer.String(meta.GetExternalName(cr)), + Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) return errors.Wrap(err, policyDeleteFailed) } diff --git a/pkg/controller/s3/bucket/policy_test.go b/pkg/controller/s3/bucket/policy_test.go index 61ca4550fd..35ccf61eee 100644 --- a/pkg/controller/s3/bucket/policy_test.go +++ b/pkg/controller/s3/bucket/policy_test.go @@ -105,7 +105,7 @@ func TestPolicyObserve(t *testing.T) { Resource: []string{ "arn:aws:s3:::test-bucket-xxxx/*", }, - SID: pointer.String("DenyIncorrectEncryptionHeader"), + SID: pointer.ToOrNilIfZeroValue("DenyIncorrectEncryptionHeader"), }, { Action: []string{ @@ -117,7 +117,7 @@ func TestPolicyObserve(t *testing.T) { Conditions: []common.ConditionPair{ { ConditionKey: "s3:x-amz-server-side-encryption", - ConditionBooleanValue: pointer.Bool(true), + ConditionBooleanValue: pointer.ToOrNilIfZeroValue(true), }, }, }, @@ -129,7 +129,7 @@ func TestPolicyObserve(t *testing.T) { Resource: []string{ "arn:aws:s3:::test-bucket-xxxx/*", }, - SID: pointer.String("DenyUnEncryptedObjectUploads"), + SID: pointer.ToOrNilIfZeroValue("DenyUnEncryptedObjectUploads"), }, { Action: []string{ @@ -153,7 +153,7 @@ func TestPolicyObserve(t *testing.T) { Conditions: []common.ConditionPair{ { ConditionKey: "aws:PrincipalAccount", - ConditionStringValue: pointer.String("123456789012"), + ConditionStringValue: pointer.ToOrNilIfZeroValue("123456789012"), }, }, }, @@ -166,7 +166,7 @@ func TestPolicyObserve(t *testing.T) { "arn:aws:s3:::test-bucket-xxxx", "arn:aws:s3:::test-bucket-xxxx/*", }, - SID: pointer.String("AllowTenantReadWrite"), + SID: pointer.ToOrNilIfZeroValue("AllowTenantReadWrite"), }, { Action: []string{ @@ -191,7 +191,7 @@ func TestPolicyObserve(t *testing.T) { "arn:aws:s3:::test-bucket-xxxx", "arn:aws:s3:::test-bucket-xxxx/*", }, - SID: pointer.String("AllowSSLRequestsOnly"), + SID: pointer.ToOrNilIfZeroValue("AllowSSLRequestsOnly"), }, }, } diff --git a/pkg/controller/s3/bucket/publicAccessBlock.go b/pkg/controller/s3/bucket/publicAccessBlock.go index aca20dbe5d..bded27cb85 100644 --- a/pkg/controller/s3/bucket/publicAccessBlock.go +++ b/pkg/controller/s3/bucket/publicAccessBlock.go @@ -57,7 +57,7 @@ func isDisabledPublicAccessBlock(cr *v1beta1.Bucket) bool { // Observe checks if the resource exists and if it matches the local configuration func (in *PublicAccessBlockClient) Observe(ctx context.Context, cr *v1beta1.Bucket) (ResourceStatus, error) { - external, err := in.client.GetPublicAccessBlock(ctx, &awss3.GetPublicAccessBlockInput{Bucket: pointer.String(meta.GetExternalName(cr))}) + external, err := in.client.GetPublicAccessBlock(ctx, &awss3.GetPublicAccessBlockInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))}) if s3.PublicAccessBlockConfigurationNotFound(err) && (cr.Spec.ForProvider.PublicAccessBlockConfiguration == nil || isDisabledPublicAccessBlock(cr)) { return Updated, nil } @@ -95,7 +95,7 @@ func (in *PublicAccessBlockClient) CreateOrUpdate(ctx context.Context, cr *v1bet return nil } input := &awss3.PutPublicAccessBlockInput{ - Bucket: pointer.String(meta.GetExternalName(cr)), + Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), PublicAccessBlockConfiguration: &awss3types.PublicAccessBlockConfiguration{ BlockPublicAcls: pointer.BoolValue(cr.Spec.ForProvider.PublicAccessBlockConfiguration.BlockPublicAcls), BlockPublicPolicy: pointer.BoolValue(cr.Spec.ForProvider.PublicAccessBlockConfiguration.BlockPublicPolicy), @@ -110,7 +110,7 @@ func (in *PublicAccessBlockClient) CreateOrUpdate(ctx context.Context, cr *v1bet // Delete removes the public access block configuration. func (in *PublicAccessBlockClient) Delete(ctx context.Context, cr *v1beta1.Bucket) error { input := &awss3.DeletePublicAccessBlockInput{ - Bucket: pointer.String(meta.GetExternalName(cr)), + Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), } _, err := in.client.DeletePublicAccessBlock(ctx, input) return errors.Wrap(resource.Ignore(s3.PublicAccessBlockConfigurationNotFound, err), publicAccessBlockDeleteFailed) @@ -118,7 +118,7 @@ func (in *PublicAccessBlockClient) Delete(ctx context.Context, cr *v1beta1.Bucke // LateInitialize is responsible for initializing the resource based on the external value func (in *PublicAccessBlockClient) LateInitialize(ctx context.Context, cr *v1beta1.Bucket) error { - external, err := in.client.GetPublicAccessBlock(ctx, &awss3.GetPublicAccessBlockInput{Bucket: pointer.String(meta.GetExternalName(cr))}) + external, err := in.client.GetPublicAccessBlock(ctx, &awss3.GetPublicAccessBlockInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr))}) if err != nil { return errorutils.Wrap(resource.Ignore(s3.PublicAccessBlockConfigurationNotFound, err), publicAccessBlockGetFailed) } @@ -129,10 +129,10 @@ func (in *PublicAccessBlockClient) LateInitialize(ctx context.Context, cr *v1bet if cr.Spec.ForProvider.PublicAccessBlockConfiguration == nil { cr.Spec.ForProvider.PublicAccessBlockConfiguration = &v1beta1.PublicAccessBlockConfiguration{} } - cr.Spec.ForProvider.PublicAccessBlockConfiguration.BlockPublicAcls = pointer.LateInitializeBoolPtr(cr.Spec.ForProvider.PublicAccessBlockConfiguration.BlockPublicAcls, pointer.Bool(external.PublicAccessBlockConfiguration.BlockPublicAcls)) - cr.Spec.ForProvider.PublicAccessBlockConfiguration.BlockPublicPolicy = pointer.LateInitializeBoolPtr(cr.Spec.ForProvider.PublicAccessBlockConfiguration.BlockPublicPolicy, pointer.Bool(external.PublicAccessBlockConfiguration.BlockPublicPolicy)) - cr.Spec.ForProvider.PublicAccessBlockConfiguration.RestrictPublicBuckets = pointer.LateInitializeBoolPtr(cr.Spec.ForProvider.PublicAccessBlockConfiguration.RestrictPublicBuckets, pointer.Bool(external.PublicAccessBlockConfiguration.RestrictPublicBuckets)) - cr.Spec.ForProvider.PublicAccessBlockConfiguration.IgnorePublicAcls = pointer.LateInitializeBoolPtr(cr.Spec.ForProvider.PublicAccessBlockConfiguration.IgnorePublicAcls, pointer.Bool(external.PublicAccessBlockConfiguration.IgnorePublicAcls)) + cr.Spec.ForProvider.PublicAccessBlockConfiguration.BlockPublicAcls = pointer.LateInitialize(cr.Spec.ForProvider.PublicAccessBlockConfiguration.BlockPublicAcls, pointer.ToOrNilIfZeroValue(external.PublicAccessBlockConfiguration.BlockPublicAcls)) + cr.Spec.ForProvider.PublicAccessBlockConfiguration.BlockPublicPolicy = pointer.LateInitialize(cr.Spec.ForProvider.PublicAccessBlockConfiguration.BlockPublicPolicy, pointer.ToOrNilIfZeroValue(external.PublicAccessBlockConfiguration.BlockPublicPolicy)) + cr.Spec.ForProvider.PublicAccessBlockConfiguration.RestrictPublicBuckets = pointer.LateInitialize(cr.Spec.ForProvider.PublicAccessBlockConfiguration.RestrictPublicBuckets, pointer.ToOrNilIfZeroValue(external.PublicAccessBlockConfiguration.RestrictPublicBuckets)) + cr.Spec.ForProvider.PublicAccessBlockConfiguration.IgnorePublicAcls = pointer.LateInitialize(cr.Spec.ForProvider.PublicAccessBlockConfiguration.IgnorePublicAcls, pointer.ToOrNilIfZeroValue(external.PublicAccessBlockConfiguration.IgnorePublicAcls)) return nil } diff --git a/pkg/controller/s3/bucket/publicAccessBlock_test.go b/pkg/controller/s3/bucket/publicAccessBlock_test.go index 8ec9c3c8a0..a8d0c48e86 100644 --- a/pkg/controller/s3/bucket/publicAccessBlock_test.go +++ b/pkg/controller/s3/bucket/publicAccessBlock_test.go @@ -69,10 +69,10 @@ func TestPublicAccessBlockClient_Observe(t *testing.T) { Spec: v1beta1.BucketSpec{ ForProvider: v1beta1.BucketParameters{ PublicAccessBlockConfiguration: &v1beta1.PublicAccessBlockConfiguration{ - BlockPublicAcls: pointer.Bool(false), - IgnorePublicAcls: pointer.Bool(false), - BlockPublicPolicy: pointer.Bool(false), - RestrictPublicBuckets: pointer.Bool(false), + BlockPublicAcls: pointer.ToOrNilIfZeroValue(false), + IgnorePublicAcls: pointer.ToOrNilIfZeroValue(false), + BlockPublicPolicy: pointer.ToOrNilIfZeroValue(false), + RestrictPublicBuckets: pointer.ToOrNilIfZeroValue(false), }, }, }, @@ -93,7 +93,7 @@ func TestPublicAccessBlockClient_Observe(t *testing.T) { Spec: v1beta1.BucketSpec{ ForProvider: v1beta1.BucketParameters{ PublicAccessBlockConfiguration: &v1beta1.PublicAccessBlockConfiguration{ - BlockPublicAcls: pointer.Bool(true), + BlockPublicAcls: pointer.ToOrNilIfZeroValue(true), }, }, }, @@ -116,10 +116,10 @@ func TestPublicAccessBlockClient_Observe(t *testing.T) { Spec: v1beta1.BucketSpec{ ForProvider: v1beta1.BucketParameters{ PublicAccessBlockConfiguration: &v1beta1.PublicAccessBlockConfiguration{ - BlockPublicAcls: pointer.Bool(false), - IgnorePublicAcls: pointer.Bool(false), - BlockPublicPolicy: pointer.Bool(false), - RestrictPublicBuckets: pointer.Bool(false), + BlockPublicAcls: pointer.ToOrNilIfZeroValue(false), + IgnorePublicAcls: pointer.ToOrNilIfZeroValue(false), + BlockPublicPolicy: pointer.ToOrNilIfZeroValue(false), + RestrictPublicBuckets: pointer.ToOrNilIfZeroValue(false), }, }, }, @@ -142,7 +142,7 @@ func TestPublicAccessBlockClient_Observe(t *testing.T) { Spec: v1beta1.BucketSpec{ ForProvider: v1beta1.BucketParameters{ PublicAccessBlockConfiguration: &v1beta1.PublicAccessBlockConfiguration{ - BlockPublicAcls: pointer.Bool(true), + BlockPublicAcls: pointer.ToOrNilIfZeroValue(true), }, }, }, @@ -166,7 +166,7 @@ func TestPublicAccessBlockClient_Observe(t *testing.T) { Spec: v1beta1.BucketSpec{ ForProvider: v1beta1.BucketParameters{ PublicAccessBlockConfiguration: &v1beta1.PublicAccessBlockConfiguration{ - BlockPublicAcls: pointer.Bool(true), + BlockPublicAcls: pointer.ToOrNilIfZeroValue(true), }, }, }, diff --git a/pkg/controller/s3/bucket/replicationConfig.go b/pkg/controller/s3/bucket/replicationConfig.go index 9e2e945487..85548291b6 100644 --- a/pkg/controller/s3/bucket/replicationConfig.go +++ b/pkg/controller/s3/bucket/replicationConfig.go @@ -53,7 +53,7 @@ func NewReplicationConfigurationClient(client s3.BucketClient) *ReplicationConfi // Observe checks if the resource exists and if it matches the local configuration func (in *ReplicationConfigurationClient) Observe(ctx context.Context, bucket *v1beta1.Bucket) (ResourceStatus, error) { //nolint:gocyclo - external, err := in.client.GetBucketReplication(ctx, &awss3.GetBucketReplicationInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketReplication(ctx, &awss3.GetBucketReplicationInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) config := bucket.Spec.ForProvider.ReplicationConfiguration if err != nil { if s3.ReplicationConfigurationNotFound(err) && config == nil { @@ -99,7 +99,7 @@ func (in *ReplicationConfigurationClient) CreateOrUpdate(ctx context.Context, bu func (in *ReplicationConfigurationClient) Delete(ctx context.Context, bucket *v1beta1.Bucket) error { _, err := in.client.DeleteBucketReplication(ctx, &awss3.DeleteBucketReplicationInput{ - Bucket: pointer.String(meta.GetExternalName(bucket)), + Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket)), }, ) return errorutils.Wrap(err, replicationDeleteFailed) @@ -108,7 +108,7 @@ func (in *ReplicationConfigurationClient) Delete(ctx context.Context, bucket *v1 // LateInitialize does nothing because the resource might have been deleted by // the user. func (in *ReplicationConfigurationClient) LateInitialize(ctx context.Context, bucket *v1beta1.Bucket) error { - external, err := in.client.GetBucketReplication(ctx, &awss3.GetBucketReplicationInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketReplication(ctx, &awss3.GetBucketReplicationInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if err != nil { return errorutils.Wrap(resource.Ignore(s3.ReplicationConfigurationNotFound, err), replicationGetFailed) } @@ -122,7 +122,7 @@ func (in *ReplicationConfigurationClient) LateInitialize(ctx context.Context, bu // We need the configuration to exist so we can initialize fp.ReplicationConfiguration = &v1beta1.ReplicationConfiguration{} } - fp.ReplicationConfiguration.Role = pointer.LateInitializeStringPtr(fp.ReplicationConfiguration.Role, external.ReplicationConfiguration.Role) + fp.ReplicationConfiguration.Role = pointer.LateInitialize(fp.ReplicationConfiguration.Role, external.ReplicationConfiguration.Role) if fp.ReplicationConfiguration.Rules == nil { createReplicationRulesFromExternal(external.ReplicationConfiguration, fp.ReplicationConfiguration) } @@ -181,7 +181,7 @@ func createReplicationRulesFromExternal(external *types.ReplicationConfiguration if rule.Destination != nil { config.Rules[i].Destination.Account = rule.Destination.Account config.Rules[i].Destination.Bucket = rule.Destination.Bucket - config.Rules[i].Destination.StorageClass = pointer.String(string(rule.Destination.StorageClass)) + config.Rules[i].Destination.StorageClass = pointer.ToOrNilIfZeroValue(string(rule.Destination.StorageClass)) if rule.Destination.AccessControlTranslation != nil { config.Rules[i].Destination.AccessControlTranslation = &v1beta1.AccessControlTranslation{} config.Rules[i].Destination.AccessControlTranslation.Owner = string(rule.Destination.AccessControlTranslation.Owner) @@ -296,7 +296,7 @@ func createRule(input v1beta1.ReplicationRule) types.ReplicationRule { } newRule.Filter = &types.ReplicationRuleFilterMemberAnd{Value: *andOperator} case Rule.Filter.Tag != nil: - newRule.Filter = &types.ReplicationRuleFilterMemberTag{Value: types.Tag{Key: pointer.String(Rule.Filter.Tag.Key), Value: pointer.String(Rule.Filter.Tag.Value)}} + newRule.Filter = &types.ReplicationRuleFilterMemberTag{Value: types.Tag{Key: pointer.ToOrNilIfZeroValue(Rule.Filter.Tag.Key), Value: pointer.ToOrNilIfZeroValue(Rule.Filter.Tag.Value)}} case Rule.Filter.Prefix != nil: newRule.Filter = &types.ReplicationRuleFilterMemberPrefix{Value: *Rule.Filter.Prefix} } @@ -337,7 +337,7 @@ func GenerateReplicationConfiguration(config *v1beta1.ReplicationConfiguration) // GeneratePutBucketReplicationInput creates the input for the PutBucketReplication request for the S3 Client func GeneratePutBucketReplicationInput(name string, config *v1beta1.ReplicationConfiguration) *awss3.PutBucketReplicationInput { return &awss3.PutBucketReplicationInput{ - Bucket: pointer.String(name), + Bucket: pointer.ToOrNilIfZeroValue(name), ReplicationConfiguration: GenerateReplicationConfiguration(config), } } diff --git a/pkg/controller/s3/bucket/replicationConfig_test.go b/pkg/controller/s3/bucket/replicationConfig_test.go index ad3f3007f7..c16ad955fb 100644 --- a/pkg/controller/s3/bucket/replicationConfig_test.go +++ b/pkg/controller/s3/bucket/replicationConfig_test.go @@ -555,7 +555,7 @@ func TestIsUpToDate(t *testing.T) { Destination: v1beta1.Destination{ AccessControlTranslation: &v1beta1.AccessControlTranslation{Owner: owner}, Account: &accountID, - Bucket: pointer.String("bucket-1"), + Bucket: pointer.ToOrNilIfZeroValue("bucket-1"), EncryptionConfiguration: &v1beta1.EncryptionConfiguration{ReplicaKmsKeyID: &kmsID}, Metrics: &v1beta1.Metrics{ EventThreshold: &v1beta1.ReplicationTimeValue{Minutes: int32(replicationTime)}, @@ -574,7 +574,7 @@ func TestIsUpToDate(t *testing.T) { Tags: tags, }, }, - ID: pointer.String("rule-1"), + ID: pointer.ToOrNilIfZeroValue("rule-1"), Priority: priority, SourceSelectionCriteria: &v1beta1.SourceSelectionCriteria{SseKmsEncryptedObjects: v1beta1.SseKmsEncryptedObjects{Status: enabled}}, Status: enabled, @@ -584,7 +584,7 @@ func TestIsUpToDate(t *testing.T) { Destination: v1beta1.Destination{ AccessControlTranslation: &v1beta1.AccessControlTranslation{Owner: owner}, Account: &accountID, - Bucket: pointer.String("bucket-2"), + Bucket: pointer.ToOrNilIfZeroValue("bucket-2"), EncryptionConfiguration: &v1beta1.EncryptionConfiguration{ReplicaKmsKeyID: &kmsID}, Metrics: &v1beta1.Metrics{ EventThreshold: &v1beta1.ReplicationTimeValue{Minutes: int32(replicationTime)}, @@ -603,7 +603,7 @@ func TestIsUpToDate(t *testing.T) { Tags: tags, }, }, - ID: pointer.String("rule-2"), + ID: pointer.ToOrNilIfZeroValue("rule-2"), Priority: priority, SourceSelectionCriteria: &v1beta1.SourceSelectionCriteria{SseKmsEncryptedObjects: v1beta1.SseKmsEncryptedObjects{Status: enabled}}, Status: enabled, @@ -616,7 +616,7 @@ func TestIsUpToDate(t *testing.T) { Destination: &s3types.Destination{ AccessControlTranslation: &s3types.AccessControlTranslation{Owner: s3types.OwnerOverrideDestination}, Account: &accountID, - Bucket: pointer.String("bucket-2"), + Bucket: pointer.ToOrNilIfZeroValue("bucket-2"), EncryptionConfiguration: &s3types.EncryptionConfiguration{ReplicaKmsKeyID: &kmsID}, Metrics: &s3types.Metrics{ EventThreshold: &s3types.ReplicationTimeValue{Minutes: int32(replicationTime)}, @@ -635,7 +635,7 @@ func TestIsUpToDate(t *testing.T) { Tags: awsTags, }, }, - ID: pointer.String("rule-2"), + ID: pointer.ToOrNilIfZeroValue("rule-2"), Priority: priority, SourceSelectionCriteria: &s3types.SourceSelectionCriteria{SseKmsEncryptedObjects: &s3types.SseKmsEncryptedObjects{Status: s3types.SseKmsEncryptedObjectsStatusEnabled}}, Status: s3types.ReplicationRuleStatusEnabled, @@ -645,7 +645,7 @@ func TestIsUpToDate(t *testing.T) { Destination: &s3types.Destination{ AccessControlTranslation: &s3types.AccessControlTranslation{Owner: s3types.OwnerOverrideDestination}, Account: &accountID, - Bucket: pointer.String("bucket-1"), + Bucket: pointer.ToOrNilIfZeroValue("bucket-1"), EncryptionConfiguration: &s3types.EncryptionConfiguration{ReplicaKmsKeyID: &kmsID}, Metrics: &s3types.Metrics{ EventThreshold: &s3types.ReplicationTimeValue{Minutes: int32(replicationTime)}, @@ -664,7 +664,7 @@ func TestIsUpToDate(t *testing.T) { Tags: awsTags, }, }, - ID: pointer.String("rule-1"), + ID: pointer.ToOrNilIfZeroValue("rule-1"), Priority: priority, SourceSelectionCriteria: &s3types.SourceSelectionCriteria{SseKmsEncryptedObjects: &s3types.SseKmsEncryptedObjects{Status: s3types.SseKmsEncryptedObjectsStatusEnabled}}, Status: s3types.ReplicationRuleStatusEnabled, @@ -741,12 +741,12 @@ func TestIsUpToDate(t *testing.T) { Prefix: &prefix, Tags: []s3types.Tag{ { - Key: pointer.String("xyz"), - Value: pointer.String("abc"), + Key: pointer.ToOrNilIfZeroValue("xyz"), + Value: pointer.ToOrNilIfZeroValue("abc"), }, { - Key: pointer.String("test"), - Value: pointer.String("value"), + Key: pointer.ToOrNilIfZeroValue("test"), + Value: pointer.ToOrNilIfZeroValue("value"), }, }, }, diff --git a/pkg/controller/s3/bucket/requestPaymentConfig.go b/pkg/controller/s3/bucket/requestPaymentConfig.go index e1f49e6b8c..47b7f40cbc 100644 --- a/pkg/controller/s3/bucket/requestPaymentConfig.go +++ b/pkg/controller/s3/bucket/requestPaymentConfig.go @@ -51,7 +51,7 @@ func (in *RequestPaymentConfigurationClient) Observe(ctx context.Context, bucket // If the payer configuration is not set, do not check return Updated, nil } - external, err := in.client.GetBucketRequestPayment(ctx, &awss3.GetBucketRequestPaymentInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketRequestPayment(ctx, &awss3.GetBucketRequestPaymentInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if err != nil { return NeedsUpdate, errorutils.Wrap(err, paymentGetFailed) } @@ -80,7 +80,7 @@ func (*RequestPaymentConfigurationClient) Delete(_ context.Context, _ *v1beta1.B // LateInitialize is responsible for initializing the resource based on the external value func (in *RequestPaymentConfigurationClient) LateInitialize(ctx context.Context, bucket *v1beta1.Bucket) error { - external, err := in.client.GetBucketRequestPayment(ctx, &awss3.GetBucketRequestPaymentInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketRequestPayment(ctx, &awss3.GetBucketRequestPaymentInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if err != nil { return errorutils.Wrap(err, paymentGetFailed) } @@ -93,7 +93,7 @@ func (in *RequestPaymentConfigurationClient) LateInitialize(ctx context.Context, } config := bucket.Spec.ForProvider.PayerConfiguration - config.Payer = pointer.LateInitializeString(config.Payer, pointer.String(string(external.Payer))) + config.Payer = pointer.LateInitializeValueFromPtr(config.Payer, pointer.ToOrNilIfZeroValue(string(external.Payer))) return nil } @@ -105,7 +105,7 @@ func (in *RequestPaymentConfigurationClient) SubresourceExists(bucket *v1beta1.B // GeneratePutBucketPaymentInput creates the input for the BucketRequestPayment request for the S3 Client func GeneratePutBucketPaymentInput(name string, config *v1beta1.PaymentConfiguration) *awss3.PutBucketRequestPaymentInput { bci := &awss3.PutBucketRequestPaymentInput{ - Bucket: pointer.String(name), + Bucket: pointer.ToOrNilIfZeroValue(name), RequestPaymentConfiguration: &types.RequestPaymentConfiguration{Payer: types.Payer(config.Payer)}, } return bci diff --git a/pkg/controller/s3/bucket/sseConfig.go b/pkg/controller/s3/bucket/sseConfig.go index 7672c6f804..ec6336802d 100644 --- a/pkg/controller/s3/bucket/sseConfig.go +++ b/pkg/controller/s3/bucket/sseConfig.go @@ -49,7 +49,7 @@ func NewSSEConfigurationClient(client s3.BucketClient) *SSEConfigurationClient { // Observe checks if the resource exists and if it matches the local configuration func (in *SSEConfigurationClient) Observe(ctx context.Context, bucket *v1beta1.Bucket) (ResourceStatus, error) { //nolint:gocyclo config := bucket.Spec.ForProvider.ServerSideEncryptionConfiguration - external, err := in.client.GetBucketEncryption(ctx, &awss3.GetBucketEncryptionInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketEncryption(ctx, &awss3.GetBucketEncryptionInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if err != nil { if s3.SSEConfigurationNotFound(err) && config == nil { return Updated, nil @@ -98,7 +98,7 @@ func (in *SSEConfigurationClient) CreateOrUpdate(ctx context.Context, bucket *v1 func (in *SSEConfigurationClient) Delete(ctx context.Context, bucket *v1beta1.Bucket) error { _, err := in.client.DeleteBucketEncryption(ctx, &awss3.DeleteBucketEncryptionInput{ - Bucket: pointer.String(meta.GetExternalName(bucket)), + Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket)), }, ) return errorutils.Wrap(err, sseDeleteFailed) @@ -107,7 +107,7 @@ func (in *SSEConfigurationClient) Delete(ctx context.Context, bucket *v1beta1.Bu // LateInitialize does nothing because the resource might have been deleted by // the user. func (in *SSEConfigurationClient) LateInitialize(ctx context.Context, bucket *v1beta1.Bucket) error { - external, err := in.client.GetBucketEncryption(ctx, &awss3.GetBucketEncryptionInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketEncryption(ctx, &awss3.GetBucketEncryptionInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if err != nil { return errorutils.Wrap(resource.Ignore(s3.SSEConfigurationNotFound, err), sseGetFailed) } @@ -137,7 +137,7 @@ func (in *SSEConfigurationClient) SubresourceExists(bucket *v1beta1.Bucket) bool // GeneratePutBucketEncryptionInput creates the input for the PutBucketEncryption request for the S3 Client func GeneratePutBucketEncryptionInput(name string, config *v1beta1.ServerSideEncryptionConfiguration) *awss3.PutBucketEncryptionInput { bei := &awss3.PutBucketEncryptionInput{ - Bucket: pointer.String(name), + Bucket: pointer.ToOrNilIfZeroValue(name), ServerSideEncryptionConfiguration: &types.ServerSideEncryptionConfiguration{ Rules: make([]types.ServerSideEncryptionRule, len(config.Rules)), }, diff --git a/pkg/controller/s3/bucket/sseConfig_test.go b/pkg/controller/s3/bucket/sseConfig_test.go index 313408a655..9ce8354ce6 100644 --- a/pkg/controller/s3/bucket/sseConfig_test.go +++ b/pkg/controller/s3/bucket/sseConfig_test.go @@ -48,7 +48,7 @@ func generateSSEConfig() *v1beta1.ServerSideEncryptionConfiguration { Rules: []v1beta1.ServerSideEncryptionRule{ { ApplyServerSideEncryptionByDefault: v1beta1.ServerSideEncryptionByDefault{ - KMSMasterKeyID: pointer.String(keyID), + KMSMasterKeyID: pointer.ToOrNilIfZeroValue(keyID), SSEAlgorithm: sseAlgo, }, }, @@ -60,9 +60,9 @@ func generateSSEConfigWithBucketEncryption() *v1beta1.ServerSideEncryptionConfig return &v1beta1.ServerSideEncryptionConfiguration{ Rules: []v1beta1.ServerSideEncryptionRule{ { - BucketKeyEnabled: *pointer.Bool(true), + BucketKeyEnabled: *pointer.ToOrNilIfZeroValue(true), ApplyServerSideEncryptionByDefault: v1beta1.ServerSideEncryptionByDefault{ - KMSMasterKeyID: pointer.String(keyID), + KMSMasterKeyID: pointer.ToOrNilIfZeroValue(keyID), SSEAlgorithm: sseAlgo, }, }, @@ -75,7 +75,7 @@ func generateAWSSSE() *s3types.ServerSideEncryptionConfiguration { Rules: []s3types.ServerSideEncryptionRule{ { ApplyServerSideEncryptionByDefault: &s3types.ServerSideEncryptionByDefault{ - KMSMasterKeyID: pointer.String(keyID), + KMSMasterKeyID: pointer.ToOrNilIfZeroValue(keyID), SSEAlgorithm: s3types.ServerSideEncryptionAes256, }, }, diff --git a/pkg/controller/s3/bucket/taggingConfig.go b/pkg/controller/s3/bucket/taggingConfig.go index 5e26fb8b9c..85b8dd4992 100644 --- a/pkg/controller/s3/bucket/taggingConfig.go +++ b/pkg/controller/s3/bucket/taggingConfig.go @@ -51,7 +51,7 @@ func NewTaggingConfigurationClient(client s3.BucketClient) *TaggingConfiguration // Observe checks if the resource exists and if it matches the local configuration func (in *TaggingConfigurationClient) Observe(ctx context.Context, bucket *v1beta1.Bucket) (ResourceStatus, error) { - external, err := in.client.GetBucketTagging(ctx, &awss3.GetBucketTaggingInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketTagging(ctx, &awss3.GetBucketTaggingInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) config := bucket.Spec.ForProvider.BucketTagging if err != nil { if s3.TaggingNotFound(err) && config == nil { @@ -86,7 +86,7 @@ func (in *TaggingConfigurationClient) CreateOrUpdate(ctx context.Context, bucket func (in *TaggingConfigurationClient) Delete(ctx context.Context, bucket *v1beta1.Bucket) error { _, err := in.client.DeleteBucketTagging(ctx, &awss3.DeleteBucketTaggingInput{ - Bucket: pointer.String(meta.GetExternalName(bucket)), + Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket)), }, ) return errorutils.Wrap(err, taggingDeleteFailed) @@ -95,7 +95,7 @@ func (in *TaggingConfigurationClient) Delete(ctx context.Context, bucket *v1beta // LateInitialize does nothing because the resource might have been deleted by // the user. func (in *TaggingConfigurationClient) LateInitialize(ctx context.Context, bucket *v1beta1.Bucket) error { - external, err := in.client.GetBucketTagging(ctx, &awss3.GetBucketTaggingInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketTagging(ctx, &awss3.GetBucketTaggingInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if err != nil { return errorutils.Wrap(resource.Ignore(s3.TaggingNotFound, err), taggingGetFailed) } @@ -141,7 +141,7 @@ func GenerateLocalTagging(config []types.Tag) *v1beta1.Tagging { // GeneratePutBucketTagging creates the PutBucketTaggingInput for the aws SDK func GeneratePutBucketTagging(name string, config *v1beta1.Tagging) *awss3.PutBucketTaggingInput { return &awss3.PutBucketTaggingInput{ - Bucket: pointer.String(name), + Bucket: pointer.ToOrNilIfZeroValue(name), Tagging: GenerateTagging(config), } } diff --git a/pkg/controller/s3/bucket/versioningConfig.go b/pkg/controller/s3/bucket/versioningConfig.go index b33eee633c..8624bd56ab 100644 --- a/pkg/controller/s3/bucket/versioningConfig.go +++ b/pkg/controller/s3/bucket/versioningConfig.go @@ -46,7 +46,7 @@ func NewVersioningConfigurationClient(client s3.BucketClient) *VersioningConfigu // Observe checks if the resource exists and if it matches the local configuration func (in *VersioningConfigurationClient) Observe(ctx context.Context, bucket *v1beta1.Bucket) (ResourceStatus, error) { - external, err := in.client.GetBucketVersioning(ctx, &awss3.GetBucketVersioningInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketVersioning(ctx, &awss3.GetBucketVersioningInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if err != nil { return NeedsUpdate, errorutils.Wrap(err, versioningGetFailed) } @@ -77,7 +77,7 @@ func (*VersioningConfigurationClient) Delete(_ context.Context, _ *v1beta1.Bucke // LateInitialize is responsible for initializing the resource based on the external value func (in *VersioningConfigurationClient) LateInitialize(ctx context.Context, bucket *v1beta1.Bucket) error { - external, err := in.client.GetBucketVersioning(ctx, &awss3.GetBucketVersioningInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketVersioning(ctx, &awss3.GetBucketVersioningInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if err != nil { return errorutils.Wrap(err, versioningGetFailed) } @@ -91,8 +91,8 @@ func (in *VersioningConfigurationClient) LateInitialize(ctx context.Context, buc } config := bucket.Spec.ForProvider.VersioningConfiguration - config.Status = pointer.LateInitializeStringPtr(config.Status, pointer.String(string(external.Status))) - config.MFADelete = pointer.LateInitializeStringPtr(config.MFADelete, pointer.String(string(external.MFADelete))) + config.Status = pointer.LateInitialize(config.Status, pointer.ToOrNilIfZeroValue(string(external.Status))) + config.MFADelete = pointer.LateInitialize(config.MFADelete, pointer.ToOrNilIfZeroValue(string(external.MFADelete))) return nil } @@ -104,7 +104,7 @@ func (in *VersioningConfigurationClient) SubresourceExists(bucket *v1beta1.Bucke // GeneratePutBucketVersioningInput creates the input for the PutBucketVersioning request for the S3 Client func GeneratePutBucketVersioningInput(name string, config *v1beta1.VersioningConfiguration) *awss3.PutBucketVersioningInput { return &awss3.PutBucketVersioningInput{ - Bucket: pointer.String(name), + Bucket: pointer.ToOrNilIfZeroValue(name), VersioningConfiguration: &awss3types.VersioningConfiguration{ MFADelete: awss3types.MFADelete(pointer.StringValue(config.MFADelete)), Status: awss3types.BucketVersioningStatus(pointer.StringValue(config.Status)), diff --git a/pkg/controller/s3/bucket/versioningConfig_test.go b/pkg/controller/s3/bucket/versioningConfig_test.go index bfc66a27d0..9e1435fee4 100644 --- a/pkg/controller/s3/bucket/versioningConfig_test.go +++ b/pkg/controller/s3/bucket/versioningConfig_test.go @@ -40,7 +40,7 @@ var ( func generateVersioningConfig() *v1beta1.VersioningConfiguration { return &v1beta1.VersioningConfiguration{ MFADelete: &mfadelete, - Status: pointer.String(enabled), + Status: pointer.ToOrNilIfZeroValue(enabled), } } diff --git a/pkg/controller/s3/bucket/websiteConfig.go b/pkg/controller/s3/bucket/websiteConfig.go index c0a374544b..67001b17fa 100644 --- a/pkg/controller/s3/bucket/websiteConfig.go +++ b/pkg/controller/s3/bucket/websiteConfig.go @@ -51,7 +51,7 @@ func NewWebsiteConfigurationClient(client s3.BucketClient) *WebsiteConfiguration // Observe checks if the resource exists and if it matches the local configuration func (in *WebsiteConfigurationClient) Observe(ctx context.Context, bucket *v1beta1.Bucket) (ResourceStatus, error) { //nolint:gocyclo - external, err := in.client.GetBucketWebsite(ctx, &awss3.GetBucketWebsiteInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketWebsite(ctx, &awss3.GetBucketWebsiteInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) config := bucket.Spec.ForProvider.WebsiteConfiguration if err != nil { if s3.WebsiteConfigurationNotFound(err) && config == nil { @@ -96,7 +96,7 @@ func (in *WebsiteConfigurationClient) CreateOrUpdate(ctx context.Context, bucket func (in *WebsiteConfigurationClient) Delete(ctx context.Context, bucket *v1beta1.Bucket) error { _, err := in.client.DeleteBucketWebsite(ctx, &awss3.DeleteBucketWebsiteInput{ - Bucket: pointer.String(meta.GetExternalName(bucket)), + Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket)), }, ) return errorutils.Wrap(err, websiteDeleteFailed) @@ -105,7 +105,7 @@ func (in *WebsiteConfigurationClient) Delete(ctx context.Context, bucket *v1beta // LateInitialize does nothing because the resource might have been deleted by // the user. func (in *WebsiteConfigurationClient) LateInitialize(ctx context.Context, bucket *v1beta1.Bucket) error { - external, err := in.client.GetBucketWebsite(ctx, &awss3.GetBucketWebsiteInput{Bucket: pointer.String(meta.GetExternalName(bucket))}) + external, err := in.client.GetBucketWebsite(ctx, &awss3.GetBucketWebsiteInput{Bucket: pointer.ToOrNilIfZeroValue(meta.GetExternalName(bucket))}) if err != nil { return errorutils.Wrap(resource.Ignore(s3.WebsiteConfigurationNotFound, err), websiteGetFailed) } @@ -135,14 +135,14 @@ func (in *WebsiteConfigurationClient) SubresourceExists(bucket *v1beta1.Bucket) func GenerateWebsiteConfiguration(config *v1beta1.WebsiteConfiguration) *types.WebsiteConfiguration { wi := &types.WebsiteConfiguration{} if config.ErrorDocument != nil { - wi.ErrorDocument = &types.ErrorDocument{Key: pointer.String(config.ErrorDocument.Key)} + wi.ErrorDocument = &types.ErrorDocument{Key: pointer.ToOrNilIfZeroValue(config.ErrorDocument.Key)} } if config.IndexDocument != nil { - wi.IndexDocument = &types.IndexDocument{Suffix: pointer.String(config.IndexDocument.Suffix)} + wi.IndexDocument = &types.IndexDocument{Suffix: pointer.ToOrNilIfZeroValue(config.IndexDocument.Suffix)} } if config.RedirectAllRequestsTo != nil { wi.RedirectAllRequestsTo = &types.RedirectAllRequestsTo{ - HostName: pointer.String(config.RedirectAllRequestsTo.HostName), + HostName: pointer.ToOrNilIfZeroValue(config.RedirectAllRequestsTo.HostName), Protocol: types.Protocol(config.RedirectAllRequestsTo.Protocol), } } @@ -174,7 +174,7 @@ func GenerateWebsiteConfiguration(config *v1beta1.WebsiteConfiguration) *types.W // GeneratePutBucketWebsiteInput creates the input for the PutBucketWebsite request for the S3 Client func GeneratePutBucketWebsiteInput(name string, config *v1beta1.WebsiteConfiguration) *awss3.PutBucketWebsiteInput { wi := &awss3.PutBucketWebsiteInput{ - Bucket: pointer.String(name), + Bucket: pointer.ToOrNilIfZeroValue(name), WebsiteConfiguration: GenerateWebsiteConfiguration(config), } return wi @@ -185,25 +185,25 @@ func createWebsiteConfigFromExternal(external *awss3.GetBucketWebsiteOutput, con if config.ErrorDocument == nil { config.ErrorDocument = &v1beta1.ErrorDocument{} } - config.ErrorDocument.Key = pointer.LateInitializeString(config.ErrorDocument.Key, external.ErrorDocument.Key) + config.ErrorDocument.Key = pointer.LateInitializeValueFromPtr(config.ErrorDocument.Key, external.ErrorDocument.Key) } if external.IndexDocument != nil { if config.IndexDocument == nil { config.IndexDocument = &v1beta1.IndexDocument{} } - config.IndexDocument.Suffix = pointer.LateInitializeString(config.IndexDocument.Suffix, external.IndexDocument.Suffix) + config.IndexDocument.Suffix = pointer.LateInitializeValueFromPtr(config.IndexDocument.Suffix, external.IndexDocument.Suffix) } if external.RedirectAllRequestsTo != nil { if config.RedirectAllRequestsTo == nil { config.RedirectAllRequestsTo = &v1beta1.RedirectAllRequestsTo{} } if external.RedirectAllRequestsTo.Protocol != "" { - config.RedirectAllRequestsTo.Protocol = pointer.LateInitializeString( + config.RedirectAllRequestsTo.Protocol = pointer.LateInitializeValueFromPtr( config.RedirectAllRequestsTo.Protocol, - pointer.String(string(external.RedirectAllRequestsTo.Protocol)), + pointer.ToOrNilIfZeroValue(string(external.RedirectAllRequestsTo.Protocol)), ) } - config.RedirectAllRequestsTo.HostName = pointer.LateInitializeString( + config.RedirectAllRequestsTo.HostName = pointer.LateInitializeValueFromPtr( config.RedirectAllRequestsTo.HostName, external.RedirectAllRequestsTo.HostName, ) @@ -212,26 +212,26 @@ func createWebsiteConfigFromExternal(external *awss3.GetBucketWebsiteOutput, con config.RoutingRules = make([]v1beta1.RoutingRule, len(external.RoutingRules)) for i, rr := range external.RoutingRules { if rr.Redirect != nil { - config.RoutingRules[i].Redirect.HostName = pointer.LateInitializeStringPtr( + config.RoutingRules[i].Redirect.HostName = pointer.LateInitialize( config.RoutingRules[i].Redirect.HostName, rr.Redirect.HostName, ) - config.RoutingRules[i].Redirect.HTTPRedirectCode = pointer.LateInitializeStringPtr( + config.RoutingRules[i].Redirect.HTTPRedirectCode = pointer.LateInitialize( config.RoutingRules[i].Redirect.HTTPRedirectCode, rr.Redirect.HttpRedirectCode, ) - config.RoutingRules[i].Redirect.ReplaceKeyPrefixWith = pointer.LateInitializeStringPtr( + config.RoutingRules[i].Redirect.ReplaceKeyPrefixWith = pointer.LateInitialize( config.RoutingRules[i].Redirect.ReplaceKeyPrefixWith, rr.Redirect.ReplaceKeyPrefixWith, ) - config.RoutingRules[i].Redirect.ReplaceKeyWith = pointer.LateInitializeStringPtr( + config.RoutingRules[i].Redirect.ReplaceKeyWith = pointer.LateInitialize( config.RoutingRules[i].Redirect.ReplaceKeyWith, rr.Redirect.ReplaceKeyWith, ) if rr.Redirect.Protocol != "" { - config.RoutingRules[i].Redirect.Protocol = pointer.LateInitializeString( + config.RoutingRules[i].Redirect.Protocol = pointer.LateInitializeValueFromPtr( config.RoutingRules[i].Redirect.Protocol, - pointer.String(string(rr.Redirect.Protocol)), + pointer.ToOrNilIfZeroValue(string(rr.Redirect.Protocol)), ) } } @@ -239,11 +239,11 @@ func createWebsiteConfigFromExternal(external *awss3.GetBucketWebsiteOutput, con if config.RoutingRules[i].Condition == nil { config.RoutingRules[i].Condition = &v1beta1.Condition{} } - config.RoutingRules[i].Condition.HTTPErrorCodeReturnedEquals = pointer.LateInitializeStringPtr( + config.RoutingRules[i].Condition.HTTPErrorCodeReturnedEquals = pointer.LateInitialize( config.RoutingRules[i].Condition.HTTPErrorCodeReturnedEquals, rr.Condition.HttpErrorCodeReturnedEquals, ) - config.RoutingRules[i].Condition.KeyPrefixEquals = pointer.LateInitializeStringPtr( + config.RoutingRules[i].Condition.KeyPrefixEquals = pointer.LateInitialize( config.RoutingRules[i].Condition.KeyPrefixEquals, rr.Condition.KeyPrefixEquals, ) diff --git a/pkg/controller/s3/bucketpolicy/bucketpolicy.go b/pkg/controller/s3/bucketpolicy/bucketpolicy.go index 5fe5738e00..76035cb7a1 100644 --- a/pkg/controller/s3/bucketpolicy/bucketpolicy.go +++ b/pkg/controller/s3/bucketpolicy/bucketpolicy.go @@ -178,7 +178,7 @@ func (e *external) Create(ctx context.Context, mgd resource.Managed) (managed.Ex } policyString := *policyData - _, err = e.client.PutBucketPolicy(ctx, &awss3.PutBucketPolicyInput{Bucket: cr.Spec.Parameters.BucketName, Policy: pointer.String(policyString)}) + _, err = e.client.PutBucketPolicy(ctx, &awss3.PutBucketPolicyInput{Bucket: cr.Spec.Parameters.BucketName, Policy: pointer.ToOrNilIfZeroValue(policyString)}) return managed.ExternalCreation{}, errorutils.Wrap(err, errAttach) } @@ -194,7 +194,7 @@ func (e *external) Update(ctx context.Context, mgd resource.Managed) (managed.Ex return managed.ExternalUpdate{}, errorutils.Wrap(err, errUpdate) } - _, err = e.client.PutBucketPolicy(ctx, &awss3.PutBucketPolicyInput{Bucket: cr.Spec.Parameters.BucketName, Policy: pointer.String(*policyData)}) + _, err = e.client.PutBucketPolicy(ctx, &awss3.PutBucketPolicyInput{Bucket: cr.Spec.Parameters.BucketName, Policy: pointer.ToOrNilIfZeroValue(*policyData)}) return managed.ExternalUpdate{}, errorutils.Wrap(err, errUpdate) } diff --git a/pkg/controller/s3control/accesspoint/controller_test.go b/pkg/controller/s3control/accesspoint/controller_test.go index d7a116e2e3..b9e066a2a8 100644 --- a/pkg/controller/s3control/accesspoint/controller_test.go +++ b/pkg/controller/s3control/accesspoint/controller_test.go @@ -25,7 +25,7 @@ var ( unexpectedItem resource.Managed errBoom = errors.New("boom") testOutputPolicyV1 = s3control.GetAccessPointPolicyOutput{ - Policy: pointer.String(`{ + Policy: pointer.ToOrNilIfZeroValue(`{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowPublicRead", @@ -42,11 +42,11 @@ var ( Version: "2012-10-17", Statements: []common.BucketPolicyStatement{ { - SID: pointer.String("AllowPublicRead"), + SID: pointer.ToOrNilIfZeroValue("AllowPublicRead"), Effect: "Allow", Principal: &common.BucketPrincipal{ AWSPrincipals: []common.AWSPrincipal{ - {IAMRoleARN: pointer.String("arn:aws:iam::1234567890:role/sso/role")}, + {IAMRoleARN: pointer.ToOrNilIfZeroValue("arn:aws:iam::1234567890:role/sso/role")}, }, }, Action: []string{"s3:GetObject"}, @@ -58,11 +58,11 @@ var ( Version: "2012-10-17", Statements: []common.BucketPolicyStatement{ { - SID: pointer.String("AllowPublicWrite"), + SID: pointer.ToOrNilIfZeroValue("AllowPublicWrite"), Effect: "Allow", Principal: &common.BucketPrincipal{ AWSPrincipals: []common.AWSPrincipal{ - {IAMRoleARN: pointer.String("arn:aws:iam::1234567890:role/sso/role")}, + {IAMRoleARN: pointer.ToOrNilIfZeroValue("arn:aws:iam::1234567890:role/sso/role")}, }, }, Action: []string{"s3:GetObject"}, diff --git a/pkg/controller/s3control/accesspoint/hooks.go b/pkg/controller/s3control/accesspoint/hooks.go index 2d4bc355b2..1afcf6703f 100644 --- a/pkg/controller/s3control/accesspoint/hooks.go +++ b/pkg/controller/s3control/accesspoint/hooks.go @@ -74,18 +74,18 @@ func (h *hooks) update(ctx context.Context, mg resource.Managed) (managed.Extern } func preDelete(_ context.Context, point *svcapitypes.AccessPoint, input *svcsdk.DeleteAccessPointInput) (bool, error) { - input.Name = pointer.String(meta.GetExternalName(point)) + input.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(point)) return false, nil } func preCreate(_ context.Context, point *svcapitypes.AccessPoint, input *svcsdk.CreateAccessPointInput) error { - input.Name = pointer.String(meta.GetExternalName(point)) + input.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(point)) input.Bucket = point.Spec.ForProvider.BucketName return nil } func preObserve(_ context.Context, point *svcapitypes.AccessPoint, input *svcsdk.GetAccessPointInput) error { - input.Name = pointer.String(meta.GetExternalName(point)) + input.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(point)) return nil } diff --git a/pkg/controller/s3control/accesspoint/policy.go b/pkg/controller/s3control/accesspoint/policy.go index 38fbc8316d..1d30bbdcb9 100644 --- a/pkg/controller/s3control/accesspoint/policy.go +++ b/pkg/controller/s3control/accesspoint/policy.go @@ -88,7 +88,7 @@ func (p *policyClient) createOrUpdate(ctx context.Context, cr *svcapitypes.Acces return nil } input := &svcsdk.PutAccessPointPolicyInput{} - input.Name = pointer.String(meta.GetExternalName(cr)) + input.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) if cr.Spec.ForProvider.AccountID != nil { input.SetAccountId(*cr.Spec.ForProvider.AccountID) @@ -118,7 +118,7 @@ func isErrorPolicyNotFound(err error) bool { // generateGetAccessPointPolicyInput returns a get input. func generateGetAccessPointPolicyInput(cr *svcapitypes.AccessPoint) *svcsdk.GetAccessPointPolicyInput { input := &svcsdk.GetAccessPointPolicyInput{} - input.Name = pointer.String(meta.GetExternalName(cr)) + input.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) if cr.Spec.ForProvider.AccountID != nil { input.SetAccountId(*cr.Spec.ForProvider.AccountID) @@ -130,7 +130,7 @@ func generateGetAccessPointPolicyInput(cr *svcapitypes.AccessPoint) *svcsdk.GetA // generateDeleteAccessPointPolicyInput returns a deletion input. func generateDeleteAccessPointPolicyInput(cr *svcapitypes.AccessPoint) *svcsdk.DeleteAccessPointPolicyInput { input := &svcsdk.DeleteAccessPointPolicyInput{} - input.Name = pointer.String(meta.GetExternalName(cr)) + input.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) if cr.Spec.ForProvider.AccountID != nil { input.SetAccountId(*cr.Spec.ForProvider.AccountID) } diff --git a/pkg/controller/s3control/accesspoint/policy_test.go b/pkg/controller/s3control/accesspoint/policy_test.go index 7509832d7e..acc33e94ba 100644 --- a/pkg/controller/s3control/accesspoint/policy_test.go +++ b/pkg/controller/s3control/accesspoint/policy_test.go @@ -38,11 +38,11 @@ var ( Version: "2012-10-17", Statements: []common.BucketPolicyStatement{ { - SID: pointer.String("AllowPublicRead"), + SID: pointer.ToOrNilIfZeroValue("AllowPublicRead"), Effect: "Allow", Principal: &common.BucketPrincipal{ AWSPrincipals: []common.AWSPrincipal{ - {IAMRoleARN: pointer.String("arn:aws:iam::1234567890:role/sso/role")}, + {IAMRoleARN: pointer.ToOrNilIfZeroValue("arn:aws:iam::1234567890:role/sso/role")}, }, }, Action: []string{"s3:GetObject"}, @@ -55,11 +55,11 @@ var ( Version: "2012-10-17", Statements: []common.BucketPolicyStatement{ { - SID: pointer.String("AllowPublicWrite"), + SID: pointer.ToOrNilIfZeroValue("AllowPublicWrite"), Effect: "Allow", Principal: &common.BucketPrincipal{ AWSPrincipals: []common.AWSPrincipal{ - {IAMRoleARN: pointer.String("arn:aws:iam::1234567890:role/sso/role")}, + {IAMRoleARN: pointer.ToOrNilIfZeroValue("arn:aws:iam::1234567890:role/sso/role")}, }, }, Action: []string{"s3:GetObject"}, diff --git a/pkg/controller/s3control/testing/testHelper.go b/pkg/controller/s3control/testing/testHelper.go index 05e7384e06..6d69e00a71 100644 --- a/pkg/controller/s3control/testing/testHelper.go +++ b/pkg/controller/s3control/testing/testHelper.go @@ -29,9 +29,9 @@ func AccessPoint(m ...AccessPointModifier) *svcapitypes.AccessPoint { Spec: svcapitypes.AccessPointSpec{ ForProvider: svcapitypes.AccessPointParameters{ Region: "us-east-1", - AccountID: pointer.String("1234567890"), + AccountID: pointer.ToOrNilIfZeroValue("1234567890"), CustomAccessPointParameters: svcapitypes.CustomAccessPointParameters{ - BucketName: pointer.String("test.bucket.name"), + BucketName: pointer.ToOrNilIfZeroValue("test.bucket.name"), }, }, }, diff --git a/pkg/controller/secretsmanager/secret/setup.go b/pkg/controller/secretsmanager/secret/setup.go index e94c7f028b..2ea571f35a 100644 --- a/pkg/controller/secretsmanager/secret/setup.go +++ b/pkg/controller/secretsmanager/secret/setup.go @@ -113,7 +113,7 @@ func setupExternal(e *external) { } func preObserve(_ context.Context, cr *svcapitypes.Secret, obj *svcsdk.DescribeSecretInput) error { - obj.SecretId = pointer.String(meta.GetExternalName(cr)) + obj.SecretId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -159,7 +159,7 @@ func (e *hooks) lateInitialize(spec *svcapitypes.SecretParameters, resp *svcsdk. if err := e.kube.Get(context.TODO(), nn, sc); err != nil { return err } - ref.Type = pointer.String(string(sc.Type)) + ref.Type = pointer.ToOrNilIfZeroValue(string(sc.Type)) } return nil @@ -269,7 +269,7 @@ func (e *hooks) isUpToDate(ctx context.Context, cr *svcapitypes.Secret, resp *sv func (e *hooks) isPolicyUpToDate(ctx context.Context, cr *svcapitypes.Secret) (bool, error) { res, err := e.client.GetResourcePolicyWithContext(ctx, &svcsdk.GetResourcePolicyInput{ - SecretId: pointer.String(meta.GetExternalName(cr)), + SecretId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) if err != nil { return false, errors.Wrap(err, errGetResourcePolicy) @@ -293,7 +293,7 @@ func (e *hooks) isPolicyUpToDate(ctx context.Context, cr *svcapitypes.Secret) (b func (e *hooks) isPayloadUpToDate(ctx context.Context, cr *svcapitypes.Secret) (bool, error) { s, err := e.client.GetSecretValueWithContext(ctx, &svcsdk.GetSecretValueInput{ - SecretId: pointer.String(meta.GetExternalName(cr)), + SecretId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) if err != nil { return false, errorutils.Wrap(err, errGetSecretValue) @@ -358,7 +358,7 @@ func getSecretRef(params *svcapitypes.SecretParameters) (*svcapitypes.SecretRefe func (e *hooks) preUpdate(ctx context.Context, cr *svcapitypes.Secret, obj *svcsdk.UpdateSecretInput) error { //nolint:gocyclo resp, err := e.client.DescribeSecretWithContext(ctx, &svcsdk.DescribeSecretInput{ - SecretId: pointer.String(meta.GetExternalName(cr)), + SecretId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) if err != nil { return errorutils.Wrap(err, errDescribe) @@ -366,7 +366,7 @@ func (e *hooks) preUpdate(ctx context.Context, cr *svcapitypes.Secret, obj *svcs add, remove := DiffTags(cr.Spec.ForProvider.Tags, resp.Tags) if len(remove) != 0 { if _, err := e.client.UntagResourceWithContext(ctx, &svcsdk.UntagResourceInput{ - SecretId: pointer.String(meta.GetExternalName(cr)), + SecretId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), TagKeys: remove, }); err != nil { return errorutils.Wrap(err, errRemoveTags) @@ -374,7 +374,7 @@ func (e *hooks) preUpdate(ctx context.Context, cr *svcapitypes.Secret, obj *svcs } if len(add) != 0 { if _, err := e.client.TagResourceWithContext(ctx, &svcsdk.TagResourceInput{ - SecretId: pointer.String(meta.GetExternalName(cr)), + SecretId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), Tags: add, }); err != nil { return errorutils.Wrap(err, errCreateTags) @@ -384,7 +384,7 @@ func (e *hooks) preUpdate(ctx context.Context, cr *svcapitypes.Secret, obj *svcs // Update resource policy if cr.Spec.ForProvider.ResourcePolicy != nil { _, err := e.client.PutResourcePolicyWithContext(ctx, &svcsdk.PutResourcePolicyInput{ - SecretId: pointer.String(meta.GetExternalName(cr)), + SecretId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), ResourcePolicy: cr.Spec.ForProvider.ResourcePolicy, }) if err != nil { @@ -392,7 +392,7 @@ func (e *hooks) preUpdate(ctx context.Context, cr *svcapitypes.Secret, obj *svcs } } else { _, err := e.client.DeleteResourcePolicyWithContext(ctx, &svcsdk.DeleteResourcePolicyInput{ - SecretId: pointer.String(meta.GetExternalName(cr)), + SecretId: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), }) if err != nil { return errors.Wrap(err, errDeleteResourcePolicy) @@ -405,11 +405,11 @@ func (e *hooks) preUpdate(ctx context.Context, cr *svcapitypes.Secret, obj *svcs } switch { case cr.Spec.ForProvider.StringSecretRef != nil: - obj.SecretString = pointer.String(string(payload)) + obj.SecretString = pointer.ToOrNilIfZeroValue(string(payload)) case cr.Spec.ForProvider.BinarySecretRef != nil: obj.SecretBinary = payload } - obj.SecretId = pointer.String(meta.GetExternalName(cr)) + obj.SecretId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.Description = cr.Spec.ForProvider.Description obj.KmsKeyId = cr.Spec.ForProvider.KMSKeyID return nil @@ -422,18 +422,18 @@ func (e *hooks) preCreate(ctx context.Context, cr *svcapitypes.Secret, obj *svcs } switch { case cr.Spec.ForProvider.StringSecretRef != nil: - obj.SecretString = pointer.String(string(payload)) + obj.SecretString = pointer.ToOrNilIfZeroValue(string(payload)) case cr.Spec.ForProvider.BinarySecretRef != nil: obj.SecretBinary = payload } - obj.Name = pointer.String(meta.GetExternalName(cr)) + obj.Name = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } func preDelete(_ context.Context, cr *svcapitypes.Secret, obj *svcsdk.DeleteSecretInput) (bool, error) { obj.ForceDeleteWithoutRecovery = cr.Spec.ForProvider.ForceDeleteWithoutRecovery obj.RecoveryWindowInDays = cr.Spec.ForProvider.RecoveryWindowInDays - obj.SecretId = pointer.String(meta.GetExternalName(cr)) + obj.SecretId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } @@ -457,7 +457,7 @@ func (t *tagger) Initialize(ctx context.Context, mg resource.Managed) error { cr.Spec.ForProvider.Tags = make([]*svcapitypes.Tag, len(tagMap)) i := 0 for k, v := range tagMap { - cr.Spec.ForProvider.Tags[i] = &svcapitypes.Tag{Key: pointer.String(k), Value: pointer.String(v)} + cr.Spec.ForProvider.Tags[i] = &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(k), Value: pointer.ToOrNilIfZeroValue(v)} i++ } sort.Slice(cr.Spec.ForProvider.Tags, func(i, j int) bool { @@ -481,10 +481,10 @@ func DiffTags(spec []*svcapitypes.Tag, current []*svcsdk.Tag) (addTags []*svcsdk removeMap[pointer.StringValue(t.Key)] = struct{}{} } for k, v := range addMap { - addTags = append(addTags, &svcsdk.Tag{Key: pointer.String(k), Value: pointer.String(v)}) + addTags = append(addTags, &svcsdk.Tag{Key: pointer.ToOrNilIfZeroValue(k), Value: pointer.ToOrNilIfZeroValue(v)}) } for k := range removeMap { - remove = append(remove, pointer.String(k)) + remove = append(remove, pointer.ToOrNilIfZeroValue(k)) } return } diff --git a/pkg/controller/servicediscovery/commonnamespace/hooks.go b/pkg/controller/servicediscovery/commonnamespace/hooks.go index 71cbc3b67f..6242cb7a8c 100644 --- a/pkg/controller/servicediscovery/commonnamespace/hooks.go +++ b/pkg/controller/servicediscovery/commonnamespace/hooks.go @@ -127,7 +127,7 @@ func (h *Hooks) Observe(ctx context.Context, mg cpresource.Managed) (managed.Ext } nsInput := &svcsdk.GetNamespaceInput{ - Id: pointer.String(meta.GetExternalName(cr)), + Id: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), } nsReqResp, err := h.client.GetNamespaceWithContext(ctx, nsInput) if err != nil { @@ -196,7 +196,7 @@ func (h *Hooks) Delete(ctx context.Context, mg cpresource.Managed) error { return errors.New(errUnexpectedObject) } input := &svcsdk.DeleteNamespaceInput{ - Id: pointer.String(meta.GetExternalName(cr)), + Id: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), } op, err := h.client.DeleteNamespaceWithContext(ctx, input) if cpresource.IgnoreAny(err, ActualIsNotFound, IsDuplicateRequest) != nil { @@ -236,7 +236,7 @@ func AreTagsUpToDate(client servicediscoveryiface.ServiceDiscoveryAPI, spec []*v func UpdateTagsForResource(client servicediscoveryiface.ServiceDiscoveryAPI, spec []*v1alpha1.Tag, cr v1.Object) error { nsInput := &svcsdk.GetNamespaceInput{ - Id: pointer.String(meta.GetExternalName(cr)), + Id: pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)), } nsReqResp, err := client.GetNamespace(nsInput) @@ -301,14 +301,14 @@ func DiffTags(spec []*v1alpha1.Tag, current []*svcsdk.Tag) (addTags []*svcsdk.Ta if currentVal != val { removeTags = append(removeTags, t.Key) addTags = append(addTags, &svcsdk.Tag{ - Key: pointer.String(key), - Value: pointer.String(val), + Key: pointer.ToOrNilIfZeroValue(key), + Value: pointer.ToOrNilIfZeroValue(val), }) } } else { addTags = append(addTags, &svcsdk.Tag{ - Key: pointer.String(key), - Value: pointer.String(val), + Key: pointer.ToOrNilIfZeroValue(key), + Value: pointer.ToOrNilIfZeroValue(val), }) } } @@ -316,7 +316,7 @@ func DiffTags(spec []*v1alpha1.Tag, current []*svcsdk.Tag) (addTags []*svcsdk.Ta for _, t := range current { key := pointer.StringValue(t.Key) if _, exists := specMap[key]; !exists { - removeTags = append(removeTags, pointer.String(key)) + removeTags = append(removeTags, pointer.ToOrNilIfZeroValue(key)) } } diff --git a/pkg/controller/servicediscovery/httpnamespace/setup.go b/pkg/controller/servicediscovery/httpnamespace/setup.go index f5ec6c1089..802873c893 100644 --- a/pkg/controller/servicediscovery/httpnamespace/setup.go +++ b/pkg/controller/servicediscovery/httpnamespace/setup.go @@ -88,7 +88,7 @@ type hooks struct { } func preCreate(_ context.Context, cr *svcapitypes.HTTPNamespace, obj *svcsdk.CreateHttpNamespaceInput) error { - obj.CreatorRequestId = pointer.String(string(cr.UID)) + obj.CreatorRequestId = pointer.ToOrNilIfZeroValue(string(cr.UID)) return nil } @@ -100,8 +100,8 @@ func postCreate(_ context.Context, cr *svcapitypes.HTTPNamespace, resp *svcsdk.C func preUpdate(_ context.Context, cr *svcapitypes.HTTPNamespace, obj *svcsdk.UpdateHttpNamespaceInput) error { - obj.UpdaterRequestId = pointer.String(string(cr.UID)) - obj.Id = pointer.String(meta.GetExternalName(cr)) + obj.UpdaterRequestId = pointer.ToOrNilIfZeroValue(string(cr.UID)) + obj.Id = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.Namespace = &svcsdk.HttpNamespaceChange{ Description: cr.GetDescription(), diff --git a/pkg/controller/servicediscovery/privatednsnamespace/setup.go b/pkg/controller/servicediscovery/privatednsnamespace/setup.go index 5c42c7fa5a..abc961f5d2 100644 --- a/pkg/controller/servicediscovery/privatednsnamespace/setup.go +++ b/pkg/controller/servicediscovery/privatednsnamespace/setup.go @@ -88,7 +88,7 @@ type hooks struct { } func preCreate(_ context.Context, cr *svcapitypes.PrivateDNSNamespace, obj *svcsdk.CreatePrivateDnsNamespaceInput) error { - obj.CreatorRequestId = pointer.String(string(cr.UID)) + obj.CreatorRequestId = pointer.ToOrNilIfZeroValue(string(cr.UID)) obj.Vpc = cr.Spec.ForProvider.VPC return nil } @@ -99,8 +99,8 @@ func postCreate(_ context.Context, cr *svcapitypes.PrivateDNSNamespace, resp *sv } func preUpdate(_ context.Context, cr *svcapitypes.PrivateDNSNamespace, obj *svcsdk.UpdatePrivateDnsNamespaceInput) error { - obj.UpdaterRequestId = pointer.String(string(cr.UID)) - obj.Id = pointer.String(meta.GetExternalName(cr)) + obj.UpdaterRequestId = pointer.ToOrNilIfZeroValue(string(cr.UID)) + obj.Id = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) // Description and TTL are required obj.Namespace = &svcsdk.PrivateDnsNamespaceChange{ diff --git a/pkg/controller/servicediscovery/publicdnsnamespace/setup.go b/pkg/controller/servicediscovery/publicdnsnamespace/setup.go index 532457b3be..04728a66b7 100644 --- a/pkg/controller/servicediscovery/publicdnsnamespace/setup.go +++ b/pkg/controller/servicediscovery/publicdnsnamespace/setup.go @@ -89,7 +89,7 @@ type hooks struct { } func preCreate(_ context.Context, cr *svcapitypes.PublicDNSNamespace, obj *svcsdk.CreatePublicDnsNamespaceInput) error { - obj.CreatorRequestId = pointer.String(string(cr.UID)) + obj.CreatorRequestId = pointer.ToOrNilIfZeroValue(string(cr.UID)) return nil } @@ -99,8 +99,8 @@ func postCreate(_ context.Context, cr *svcapitypes.PublicDNSNamespace, resp *svc } func preUpdate(_ context.Context, cr *svcapitypes.PublicDNSNamespace, obj *svcsdk.UpdatePublicDnsNamespaceInput) error { - obj.UpdaterRequestId = pointer.String(string(cr.UID)) - obj.Id = pointer.String(meta.GetExternalName(cr)) + obj.UpdaterRequestId = pointer.ToOrNilIfZeroValue(string(cr.UID)) + obj.Id = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) // Description and TTL are required obj.Namespace = &svcsdk.PublicDnsNamespaceChange{ diff --git a/pkg/controller/sesv2/configurationset/setup.go b/pkg/controller/sesv2/configurationset/setup.go index 0506963d6c..07cae2a002 100644 --- a/pkg/controller/sesv2/configurationset/setup.go +++ b/pkg/controller/sesv2/configurationset/setup.go @@ -183,7 +183,7 @@ func isUpToDateSendingOptions(cr *svcapitypes.ConfigurationSet, resp *svcsdk.Get } func preObserve(_ context.Context, cr *svcapitypes.ConfigurationSet, obj *svcsdk.GetConfigurationSetInput) error { - obj.ConfigurationSetName = pointer.String(meta.GetExternalName(cr)) + obj.ConfigurationSetName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -208,12 +208,12 @@ func (e *hooks) postObserve(_ context.Context, cr *svcapitypes.ConfigurationSet, } func preCreate(_ context.Context, cr *svcapitypes.ConfigurationSet, obj *svcsdk.CreateConfigurationSetInput) error { - obj.ConfigurationSetName = pointer.String(meta.GetExternalName(cr)) + obj.ConfigurationSetName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } func preDelete(_ context.Context, cr *svcapitypes.ConfigurationSet, obj *svcsdk.DeleteConfigurationSetInput) (bool, error) { - obj.ConfigurationSetName = pointer.String(meta.GetExternalName(cr)) + obj.ConfigurationSetName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } @@ -226,7 +226,7 @@ func (e *hooks) update(ctx context.Context, mg resource.Managed) (managed.Extern // NOTE: Update operation NOT generated by ACK code-generator // Populate ConfigurationSetName from meta.AnnotationKeyExternalName - configurationSetName := pointer.String(mg.GetAnnotations()[meta.AnnotationKeyExternalName]) + configurationSetName := pointer.ToOrNilIfZeroValue(mg.GetAnnotations()[meta.AnnotationKeyExternalName]) // update DeliveryOptions (PutConfigurationSetDeliveryOptions) if !isUpToDateDeliveryOptions(cr, e.ConfigurationSetObservation) { diff --git a/pkg/controller/sesv2/emailidentity/setup.go b/pkg/controller/sesv2/emailidentity/setup.go index 0b1b52d003..d2a2d87a28 100644 --- a/pkg/controller/sesv2/emailidentity/setup.go +++ b/pkg/controller/sesv2/emailidentity/setup.go @@ -144,7 +144,7 @@ func (e *hooks) preCreate(ctx context.Context, cr *svcapitypes.EmailIdentity, ob if err != nil { return errors.Wrap(err, "private key retrival failed") } - obj.DkimSigningAttributes.DomainSigningPrivateKey = pointer.String(base64.StdEncoding.EncodeToString([]byte(pk))) + obj.DkimSigningAttributes.DomainSigningPrivateKey = pointer.ToOrNilIfZeroValue(base64.StdEncoding.EncodeToString([]byte(pk))) } } return nil @@ -202,10 +202,10 @@ func (e *hooks) update(ctx context.Context, mg resource.Managed) (managed.Extern dkimSigningAttributesInput := &svcsdk.PutEmailIdentityDkimSigningAttributesInput{ EmailIdentity: cr.Spec.ForProvider.EmailIdentity, SigningAttributes: &svcsdk.DkimSigningAttributes{ - DomainSigningPrivateKey: pointer.String(base64.StdEncoding.EncodeToString([]byte(pk))), + DomainSigningPrivateKey: pointer.ToOrNilIfZeroValue(base64.StdEncoding.EncodeToString([]byte(pk))), DomainSigningSelector: cr.Spec.ForProvider.DkimSigningAttributes.DomainSigningSelector, }, - SigningAttributesOrigin: pointer.String(dkimSigningAttributeExternal), + SigningAttributesOrigin: pointer.ToOrNilIfZeroValue(dkimSigningAttributeExternal), } if _, err := e.client.PutEmailIdentityDkimSigningAttributesWithContext(ctx, dkimSigningAttributesInput); err != nil { return managed.ExternalUpdate{}, errors.Wrap(err, "update failed for EmailIdentityDkimSigningAttributes") @@ -215,7 +215,7 @@ func (e *hooks) update(ctx context.Context, mg resource.Managed) (managed.Extern if cr.Spec.ForProvider.DkimSigningAttributes != nil && cr.Spec.ForProvider.DkimSigningAttributes.NextSigningKeyLength != nil { dkimSigningAttributesInput := &svcsdk.PutEmailIdentityDkimSigningAttributesInput{ EmailIdentity: cr.Spec.ForProvider.EmailIdentity, - SigningAttributesOrigin: pointer.String(dkimSigningAttributeEasyDKIM), + SigningAttributesOrigin: pointer.ToOrNilIfZeroValue(dkimSigningAttributeEasyDKIM), SigningAttributes: &svcsdk.DkimSigningAttributes{ NextSigningKeyLength: cr.Spec.ForProvider.DkimSigningAttributes.NextSigningKeyLength, }, diff --git a/pkg/controller/sesv2/emailtemplate/setup.go b/pkg/controller/sesv2/emailtemplate/setup.go index 4bcbcdf8e1..c8b7cfba38 100644 --- a/pkg/controller/sesv2/emailtemplate/setup.go +++ b/pkg/controller/sesv2/emailtemplate/setup.go @@ -79,7 +79,7 @@ func isUpToDate(_ context.Context, cr *svcapitypes.EmailTemplate, resp *svcsdk.G } func preObserve(_ context.Context, cr *svcapitypes.EmailTemplate, obj *svcsdk.GetEmailTemplateInput) error { - obj.TemplateName = pointer.String(meta.GetExternalName(cr)) + obj.TemplateName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } @@ -94,16 +94,16 @@ func postObserve(_ context.Context, cr *svcapitypes.EmailTemplate, resp *svcsdk. } func preCreate(_ context.Context, cr *svcapitypes.EmailTemplate, obj *svcsdk.CreateEmailTemplateInput) error { - obj.TemplateName = pointer.String(meta.GetExternalName(cr)) + obj.TemplateName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } func preUpdate(_ context.Context, cr *svcapitypes.EmailTemplate, obj *svcsdk.UpdateEmailTemplateInput) error { - obj.TemplateName = pointer.String(meta.GetExternalName(cr)) + obj.TemplateName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } func preDelete(_ context.Context, cr *svcapitypes.EmailTemplate, obj *svcsdk.DeleteEmailTemplateInput) (bool, error) { - obj.TemplateName = pointer.String(meta.GetExternalName(cr)) + obj.TemplateName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } diff --git a/pkg/controller/sesv2/utils/tags.go b/pkg/controller/sesv2/utils/tags.go index ec84743cd5..03de375521 100644 --- a/pkg/controller/sesv2/utils/tags.go +++ b/pkg/controller/sesv2/utils/tags.go @@ -100,14 +100,14 @@ func DiffTags(spec []*svcapitypes.Tag, current []*svcsdk.Tag) (addTags []*svcsdk if currentVal != val { removeTags = append(removeTags, t.Key) addTags = append(addTags, &svcsdk.Tag{ - Key: pointer.String(key), - Value: pointer.String(val), + Key: pointer.ToOrNilIfZeroValue(key), + Value: pointer.ToOrNilIfZeroValue(val), }) } } else { addTags = append(addTags, &svcsdk.Tag{ - Key: pointer.String(key), - Value: pointer.String(val), + Key: pointer.ToOrNilIfZeroValue(key), + Value: pointer.ToOrNilIfZeroValue(val), }) } } @@ -115,7 +115,7 @@ func DiffTags(spec []*svcapitypes.Tag, current []*svcsdk.Tag) (addTags []*svcsdk for _, t := range current { key := pointer.StringValue(t.Key) if _, exists := specMap[key]; !exists { - removeTags = append(removeTags, pointer.String(key)) + removeTags = append(removeTags, pointer.ToOrNilIfZeroValue(key)) } } @@ -143,7 +143,7 @@ func AddExternalTags(mg resource.Managed, spec []*svcapitypes.Tag) []*svcapitype func GetExternalTags(mg resource.Managed) []*svcapitypes.Tag { externalTags := []*svcapitypes.Tag{} for k, v := range resource.GetExternalTags(mg) { - externalTags = append(externalTags, &svcapitypes.Tag{Key: pointer.String(k), Value: pointer.String(v)}) + externalTags = append(externalTags, &svcapitypes.Tag{Key: pointer.ToOrNilIfZeroValue(k), Value: pointer.ToOrNilIfZeroValue(v)}) } sort.Slice(externalTags, func(i, j int) bool { diff --git a/pkg/controller/transfer/server/setup.go b/pkg/controller/transfer/server/setup.go index 6a6a223e8e..5a78c9dd8b 100644 --- a/pkg/controller/transfer/server/setup.go +++ b/pkg/controller/transfer/server/setup.go @@ -78,13 +78,13 @@ func SetupServer(mgr ctrl.Manager, o controller.Options) error { func preObserve(_ context.Context, cr *svcapitypes.Server, obj *svcsdk.DescribeServerInput) error { if meta.GetExternalName(cr) != "" { - obj.ServerId = pointer.String(meta.GetExternalName(cr)) + obj.ServerId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) } return nil } func preDelete(_ context.Context, cr *svcapitypes.Server, obj *svcsdk.DeleteServerInput) (bool, error) { - obj.ServerId = pointer.String(meta.GetExternalName(cr)) + obj.ServerId = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return false, nil } diff --git a/pkg/controller/transfer/user/setup.go b/pkg/controller/transfer/user/setup.go index 12043fe195..af43775bab 100644 --- a/pkg/controller/transfer/user/setup.go +++ b/pkg/controller/transfer/user/setup.go @@ -76,13 +76,13 @@ func SetupUser(mgr ctrl.Manager, o controller.Options) error { } func preObserve(_ context.Context, cr *svcapitypes.User, obj *svcsdk.DescribeUserInput) error { - obj.UserName = pointer.String(meta.GetExternalName(cr)) + obj.UserName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.ServerId = cr.Spec.ForProvider.ServerID return nil } func preDelete(_ context.Context, cr *svcapitypes.User, obj *svcsdk.DeleteUserInput) (bool, error) { - obj.UserName = pointer.String(meta.GetExternalName(cr)) + obj.UserName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) obj.ServerId = cr.Spec.ForProvider.ServerID return false, nil } @@ -100,6 +100,6 @@ func postObserve(_ context.Context, cr *svcapitypes.User, obj *svcsdk.DescribeUs func preCreate(_ context.Context, cr *svcapitypes.User, obj *svcsdk.CreateUserInput) error { obj.ServerId = cr.Spec.ForProvider.ServerID obj.Role = cr.Spec.ForProvider.Role - obj.UserName = pointer.String(meta.GetExternalName(cr)) + obj.UserName = pointer.ToOrNilIfZeroValue(meta.GetExternalName(cr)) return nil } diff --git a/pkg/utils/connect/aws/config.go b/pkg/utils/connect/aws/config.go index c87338c6a6..bc121be109 100644 --- a/pkg/utils/connect/aws/config.go +++ b/pkg/utils/connect/aws/config.go @@ -178,7 +178,7 @@ func SetResolver(pc *v1beta1.ProviderConfig, cfg *aws.Config) *aws.Config { //no HostnameImmutable: pointer.BoolValue(pc.Spec.Endpoint.HostnameImmutable), PartitionID: pointer.StringValue(pc.Spec.Endpoint.PartitionID), SigningName: pointer.StringValue(pc.Spec.Endpoint.SigningName), - SigningRegion: pointer.StringValue(pointer.LateInitializeStringPtr(pc.Spec.Endpoint.SigningRegion, ®ion)), + SigningRegion: pointer.StringValue(pointer.LateInitialize(pc.Spec.Endpoint.SigningRegion, ®ion)), SigningMethod: pointer.StringValue(pc.Spec.Endpoint.SigningMethod), } // Only IAM does not have a region parameter and "aws-global" is used in @@ -187,7 +187,7 @@ func SetResolver(pc *v1beta1.ProviderConfig, cfg *aws.Config) *aws.Config { //no if region == "aws-global" { switch pointer.StringValue(pc.Spec.Endpoint.PartitionID) { case "aws-us-gov", "aws-cn", "aws-iso", "aws-iso-b": - e.SigningRegion = pointer.StringValue(pointer.LateInitializeStringPtr(pc.Spec.Endpoint.SigningRegion, ®ion)) + e.SigningRegion = pointer.StringValue(pointer.LateInitialize(pc.Spec.Endpoint.SigningRegion, ®ion)) default: e.SigningRegion = "us-east-1" } @@ -692,7 +692,7 @@ func SetResolverV1(pc *v1beta1.ProviderConfig, cfg *awsv1.Config) *awsv1.Config URL: fullURL, PartitionID: pointer.StringValue(pc.Spec.Endpoint.PartitionID), SigningName: pointer.StringValue(pc.Spec.Endpoint.SigningName), - SigningRegion: pointer.StringValue(pointer.LateInitializeStringPtr(pc.Spec.Endpoint.SigningRegion, ®ion)), + SigningRegion: pointer.StringValue(pointer.LateInitialize(pc.Spec.Endpoint.SigningRegion, ®ion)), SigningMethod: pointer.StringValue(pc.Spec.Endpoint.SigningMethod), } // Only IAM does not have a region parameter and "aws-global" is used in @@ -701,7 +701,7 @@ func SetResolverV1(pc *v1beta1.ProviderConfig, cfg *awsv1.Config) *awsv1.Config if region == "aws-global" { switch pointer.StringValue(pc.Spec.Endpoint.PartitionID) { case "aws-us-gov", "aws-cn", "aws-iso", "aws-iso-b": - e.SigningRegion = pointer.StringValue(pointer.LateInitializeStringPtr(pc.Spec.Endpoint.SigningRegion, ®ion)) + e.SigningRegion = pointer.StringValue(pointer.LateInitialize(pc.Spec.Endpoint.SigningRegion, ®ion)) default: e.SigningRegion = "us-east-1" } diff --git a/pkg/utils/connect/aws/config_test.go b/pkg/utils/connect/aws/config_test.go index c207882764..876ff2f530 100644 --- a/pkg/utils/connect/aws/config_test.go +++ b/pkg/utils/connect/aws/config_test.go @@ -456,10 +456,10 @@ func TestUseProviderConfigResolveEndpoint(t *testing.T) { region: "us-east-1", service: "iam", endpointConfig: &v1beta1.EndpointConfig{ - HostnameImmutable: pointer.Bool(true), + HostnameImmutable: pointer.ToOrNilIfZeroValue(true), URL: v1beta1.URLConfig{ Type: "Static", - Static: pointer.String("http://localstack:4566"), + Static: pointer.ToOrNilIfZeroValue("http://localstack:4566"), }, }, }, @@ -555,7 +555,7 @@ func TestUsePodServiceAccountAssumeRole(t *testing.T) { providerConfig := v1beta1.ProviderConfig{ Spec: v1beta1.ProviderConfigSpec{ AssumeRole: &v1beta1.AssumeRoleOptions{ - RoleARN: pointer.String("arn:aws:iam::123456789:role/crossplane-role"), + RoleARN: pointer.ToOrNilIfZeroValue("arn:aws:iam::123456789:role/crossplane-role"), }, Credentials: v1beta1.ProviderCredentials{Source: xpv1.CredentialsSourceInjectedIdentity}, }, diff --git a/pkg/utils/pointer/convert.go b/pkg/utils/pointer/convert.go new file mode 100644 index 0000000000..9093b1233d --- /dev/null +++ b/pkg/utils/pointer/convert.go @@ -0,0 +1,60 @@ +/* +Copyright 2023 The Crossplane Authors. + +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 + +import ( + "time" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/utils/ptr" +) + +// SlicePtrToValue converts a slice of pointers to a slice of its respective +// values. +func SlicePtrToValue[T any](slice []*T) []T { + if slice == nil { + return nil + } + + var defaultValue T + res := make([]T, len(slice)) + for i, s := range slice { + res[i] = ptr.Deref[T](s, defaultValue) + } + return res +} + +// SliceValueToPtr converts a slice of values to a slice of pointers. +func SliceValueToPtr[T any](slice []T) []*T { + if slice == nil { + return nil + } + + res := make([]*T, len(slice)) + for i, s := range slice { + res[i] = ptr.To[T](s) + } + return res +} + +// TimeToMetaTime converts a standard Go time.Time to a K8s metav1.Time. +func TimeToMetaTime(t *time.Time) *metav1.Time { + if t == nil { + return nil + } + return &metav1.Time{Time: *t} +} diff --git a/pkg/utils/pointer/late_init.go b/pkg/utils/pointer/late_init.go new file mode 100644 index 0000000000..23e05da864 --- /dev/null +++ b/pkg/utils/pointer/late_init.go @@ -0,0 +1,99 @@ +/* +Copyright 2023 The Crossplane Authors. + +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 + +import ( + "time" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/utils/ptr" +) + +// LateInitialize return from if current matches the default value of T. +// Otherwise it returns current. +func LateInitialize[T comparable](current, from T) T { + var defaultVal T + if current == defaultVal { + return from + } + return current +} + +// LateInitializeValueFromPtr returns from if current matches the default value +// of T. Otherwise it returns from or the default value if from is nil as well. +func LateInitializeValueFromPtr[T comparable](current T, from *T) T { + var defaultVal T + if current == defaultVal { + return ptr.Deref(from, defaultVal) + } + return current +} + +// LateInitializeSlice returns from if current is nil and from is not empty. +// Otherwise it returns current. +func LateInitializeSlice[T any](current, from []T) []T { + if current != nil || len(from) == 0 { + return current + } + return from +} + +// LateInitializeIntFrom32Ptr returns in if it's non-nil, otherwise returns from +// which is the backup for the cases in is nil. +// This function considered that nil and 0 values are same. +// However, for a *int32, nil and 0 values must be different +// because if the external AWS resource has a field with 0 value, during late +// initialization setting this value +// in CR must be allowed. Please see the LateInitializeIntFromInt32Ptr func. +func LateInitializeIntFrom32Ptr(in *int, from *int32) *int { + if in != nil { + return in + } + if from != nil && *from != 0 { + i := int(*from) + return &i + } + return nil +} + +// LateInitializeIntFromInt32Ptr returns in if it's non-nil, otherwise returns from +// which is the backup for the cases in is nil. +func LateInitializeIntFromInt32Ptr(in *int, from *int32) *int { + if in != nil { + return in + } + + if from != nil { + i := int(*from) + return &i + } + + return nil +} + +// LateInitializeTimePtr returns in if it's non-nil, otherwise returns from +// which is the backup for the cases in is nil. +func LateInitializeTimePtr(in *metav1.Time, from *time.Time) *metav1.Time { + if in != nil { + return in + } + if from != nil { + t := metav1.NewTime(*from) + return &t + } + return nil +} diff --git a/pkg/utils/pointer/late_init_test.go b/pkg/utils/pointer/late_init_test.go new file mode 100644 index 0000000000..dcb464097a --- /dev/null +++ b/pkg/utils/pointer/late_init_test.go @@ -0,0 +1,156 @@ +/* +Copyright 2023 The Crossplane Authors. + +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 + +import ( + "reflect" + "testing" + + "github.com/google/go-cmp/cmp" + "k8s.io/utils/ptr" +) + +func expect[T any](t *testing.T, got, want T) { + tcName := reflect.TypeOf(got).Name() + t.Run(tcName, func(t *testing.T) { + if diff := cmp.Diff(want, got); diff != "" { + t.Errorf("-want, +got:\n%s", diff) + } + }) +} + +type TestStruct struct { + Val int +} + +func TestLateInitialize(t *testing.T) { + // int + expect(t, LateInitialize(nil, ptr.To(10)), ptr.To(10)) + expect(t, LateInitialize(ptr.To(0), ptr.To(10)), ptr.To(0)) + expect(t, LateInitialize(ptr.To(0), nil), ptr.To(0)) + + // int32 + expect(t, LateInitialize(nil, ptr.To[int32](10)), ptr.To[int32](10)) + expect(t, LateInitialize(ptr.To[int32](0), ptr.To[int32](10)), ptr.To[int32](0)) + expect(t, LateInitialize(ptr.To[int32](0), nil), ptr.To[int32](0)) + + // int64 + expect(t, LateInitialize(nil, ptr.To[int64](10)), ptr.To[int64](10)) + expect(t, LateInitialize(ptr.To[int64](0), ptr.To[int64](10)), ptr.To[int64](0)) + expect(t, LateInitialize(ptr.To[int64](0), nil), ptr.To[int64](0)) + + // string + expect(t, LateInitialize(nil, ptr.To("")), ptr.To("")) + expect(t, LateInitialize(ptr.To(""), ptr.To("new")), ptr.To("")) + expect(t, LateInitialize(ptr.To(""), nil), ptr.To("")) + + // bool + expect(t, LateInitialize(nil, ptr.To(false)), ptr.To(false)) + expect(t, LateInitialize(ptr.To(false), ptr.To(true)), ptr.To(false)) + expect(t, LateInitialize(ptr.To(true), ptr.To(false)), ptr.To(true)) + expect(t, LateInitialize(ptr.To(false), nil), ptr.To(false)) + + // struct + expect(t, LateInitialize(nil, ptr.To(TestStruct{})), ptr.To(TestStruct{})) + expect(t, LateInitialize(ptr.To(TestStruct{}), ptr.To(TestStruct{Val: 2})), ptr.To(TestStruct{})) + expect(t, LateInitialize(ptr.To(TestStruct{}), nil), ptr.To(TestStruct{})) + + // int + expect(t, LateInitialize(0, 10), 10) + expect(t, LateInitialize(10, 50), 10) + expect(t, LateInitialize(10, 0), 10) + + // int32 + expect(t, LateInitialize(int32(0), 10), 10) + expect(t, LateInitialize(int32(10), 50), 10) + expect(t, LateInitialize(int32(10), 0), 10) + + // int64 + expect(t, LateInitialize(int64(0), 10), 10) + expect(t, LateInitialize(int64(10), 50), 10) + expect(t, LateInitialize(int64(10), 0), 10) + + // string + expect(t, LateInitialize("", "new"), "new") + expect(t, LateInitialize("old", "new"), "old") + expect(t, LateInitialize("old", ""), "old") + + // bool + expect(t, LateInitialize(false, true), true) + expect(t, LateInitialize(true, false), true) + expect(t, LateInitialize(false, false), false) + expect(t, LateInitialize(true, true), true) + + // struct + expect(t, LateInitialize(TestStruct{}, TestStruct{Val: 2}), TestStruct{Val: 2}) + expect(t, LateInitialize(TestStruct{Val: 2}, TestStruct{Val: 4}), TestStruct{Val: 2}) + expect(t, LateInitialize(TestStruct{Val: 2}, TestStruct{}), TestStruct{Val: 2}) +} + +func TestLateInitializeValueFromPtr(t *testing.T) { + // int + expect(t, LateInitializeValueFromPtr(0, ptr.To(10)), 10) + expect(t, LateInitializeValueFromPtr(10, ptr.To(50)), 10) + expect(t, LateInitializeValueFromPtr(10, ptr.To(0)), 10) + + // int32 + expect(t, LateInitializeValueFromPtr(int32(0), ptr.To[int32](10)), 10) + expect(t, LateInitializeValueFromPtr(int32(10), ptr.To[int32](50)), 10) + expect(t, LateInitializeValueFromPtr(int32(10), ptr.To[int32](0)), 10) + expect(t, LateInitializeValueFromPtr(int32(0), nil), 0) + + // int64 + expect(t, LateInitializeValueFromPtr(int64(0), ptr.To[int64](10)), 10) + expect(t, LateInitializeValueFromPtr(int64(10), ptr.To[int64](50)), 10) + expect(t, LateInitializeValueFromPtr(int64(10), ptr.To[int64](0)), 10) + expect(t, LateInitializeValueFromPtr(int64(0), nil), 0) + + // string + expect(t, LateInitializeValueFromPtr("", ptr.To("new")), "new") + expect(t, LateInitializeValueFromPtr("old", ptr.To("new")), "old") + expect(t, LateInitializeValueFromPtr("old", ptr.To("")), "old") + expect(t, LateInitializeValueFromPtr("", nil), "") + + // bool + expect(t, LateInitializeValueFromPtr(false, ptr.To(true)), true) + expect(t, LateInitializeValueFromPtr(true, ptr.To(false)), true) + expect(t, LateInitializeValueFromPtr(true, ptr.To(true)), true) + expect(t, LateInitializeValueFromPtr(false, nil), false) + + // struct + expect(t, LateInitializeValueFromPtr(TestStruct{}, &TestStruct{Val: 2}), TestStruct{Val: 2}) + expect(t, LateInitializeValueFromPtr(TestStruct{Val: 2}, &TestStruct{Val: 4}), TestStruct{Val: 2}) + expect(t, LateInitializeValueFromPtr(TestStruct{Val: 2}, &TestStruct{}), TestStruct{Val: 2}) + expect(t, LateInitializeValueFromPtr(TestStruct{Val: 2}, nil), TestStruct{Val: 2}) + expect(t, LateInitializeValueFromPtr(TestStruct{}, nil), TestStruct{}) +} + +func TestLateInitializeSlice(t *testing.T) { + // values + expect(t, LateInitializeSlice(nil, []int{1, 2, 3}), []int{1, 2, 3}) + expect(t, LateInitializeSlice([]int{}, []int{1, 2, 3}), []int{}) + expect(t, LateInitializeSlice(nil, []int{}), nil) + expect(t, LateInitializeSlice([]int{4, 5}, []int{1, 2, 3}), []int{4, 5}) + expect(t, LateInitializeSlice([]int{4, 5}, nil), []int{4, 5}) + + // pointer + expect(t, LateInitializeSlice(nil, []*int{ptr.To(1), ptr.To(2), ptr.To(3)}), []*int{ptr.To(1), ptr.To(2), ptr.To(3)}) + expect(t, LateInitializeSlice([]*int{}, []*int{ptr.To(1), ptr.To(2), ptr.To(3)}), []*int{}) + expect(t, LateInitializeSlice(nil, []*int{}), nil) + expect(t, LateInitializeSlice([]*int{ptr.To(4), ptr.To(5)}, []*int{ptr.To(1), ptr.To(2), ptr.To(3)}), []*int{ptr.To(4), ptr.To(5)}) + expect(t, LateInitializeSlice([]*int{ptr.To(4), ptr.To(5)}, nil), []*int{ptr.To(4), ptr.To(5)}) +} diff --git a/pkg/utils/pointer/pointer.go b/pkg/utils/pointer/pointer.go index a979d4be92..44226f221e 100644 --- a/pkg/utils/pointer/pointer.go +++ b/pkg/utils/pointer/pointer.go @@ -17,327 +17,75 @@ limitations under the License. package pointer import ( - "time" - - "github.com/aws/aws-sdk-go-v2/aws" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/utils/ptr" ) -// A FieldOption determines how common Go types are translated to the types -// required by the AWS Go SDK. -type FieldOption int - -// Field options. -const ( - // FieldRequired causes zero values to be converted to a pointer to the zero - // value, rather than a nil pointer. AWS Go SDK types use pointer fields, - // with a nil pointer indicating an unset field. Our ToPtr functions return - // a nil pointer for a zero values, unless FieldRequired is set. - FieldRequired FieldOption = iota -) - -// String converts the supplied string for use with the AWS Go SDK. -func String(v string, o ...FieldOption) *string { - for _, fo := range o { - if fo == FieldRequired && v == "" { - return aws.String(v) - } - } - - if v == "" { - return nil - } - - return aws.String(v) -} - // StringValue converts the supplied string pointer to a string, returning the // empty string if the pointer is nil. // TODO(muvaf): is this really meaningful? why not implement it? func StringValue(v *string) string { - return aws.ToString(v) -} - -// StringSliceToPtr converts the supplied string array to an array of string pointers. -func StringSliceToPtr(slice []string) []*string { - if slice == nil { - return nil - } - - res := make([]*string, len(slice)) - for i, s := range slice { - res[i] = String(s) - } - return res -} - -// StringPtrSliceToValue converts the supplied string pointer array to an array of strings. -func StringPtrSliceToValue(slice []*string) []string { - if slice == nil { - return nil - } - - res := make([]string, len(slice)) - for i, s := range slice { - res[i] = StringValue(s) - } - return res + return ptr.Deref(v, "") } // BoolValue calls underlying aws ToBool func BoolValue(v *bool) bool { - return aws.ToBool(v) + return ptr.Deref(v, false) } // Int64Value converts the supplied int64 pointer to a int64, returning // 0 if the pointer is nil. func Int64Value(v *int64) int64 { - if v != nil { - return *v - } - return 0 + return ptr.Deref(v, 0) } // Int32Value converts the supplied int32 pointer to a int32, returning // 0 if the pointer is nil. func Int32Value(v *int32) int32 { - if v != nil { - return *v - } - return 0 -} - -// TimeToMetaTime converts a standard Go time.Time to a K8s metav1.Time. -func TimeToMetaTime(t *time.Time) *metav1.Time { - if t == nil { - return nil - } - return &metav1.Time{Time: *t} -} - -// LateInitializeStringPtr returns in if it's non-nil, otherwise returns from -// which is the backup for the cases in is nil. -func LateInitializeStringPtr(in *string, from *string) *string { - if in != nil { - return in - } - return from -} - -// LateInitializeString returns `from` if `in` is empty and `from` is non-nil, -// in other cases it returns `in`. -func LateInitializeString(in string, from *string) string { - if in == "" && from != nil { - return *from - } - return in -} - -// LateInitializeTimePtr returns in if it's non-nil, otherwise returns from -// which is the backup for the cases in is nil. -func LateInitializeTimePtr(in *metav1.Time, from *time.Time) *metav1.Time { - if in != nil { - return in - } - if from != nil { - t := metav1.NewTime(*from) - return &t - } - return nil + return ptr.Deref(v, 0) } // Int64 converts the supplied int for use with the AWS Go SDK. -func Int64(v int, o ...FieldOption) *int64 { - for _, fo := range o { - if fo == FieldRequired && v == 0 { - return aws.Int64(int64(v)) - } - } - +func ToIntAsInt64(v int) *int64 { if v == 0 { return nil } - - return aws.Int64(int64(v)) + val64 := int64(v) + return &val64 } -var Int64Ptr = ptr.To[int64] - // Int32 converts the supplied int for use with the AWS Go SDK. -func Int32(v int, o ...FieldOption) *int32 { - for _, fo := range o { - if fo == FieldRequired && v == 0 { - return aws.Int32(int32(v)) - } - } - +func ToIntAsInt32(v int) *int32 { if v == 0 { return nil } - - return aws.Int32(int32(v)) + val32 := int32(v) + return &val32 } -var Int32Ptr = ptr.To[int32] - -// Int64Address returns the given *int in the form of *int64. -func Int64Address(i *int) *int64 { - if i == nil { - return nil - } - return aws.Int64(int64(*i)) -} - -var Int64Slice = aws.Int64Slice - // Int32Address returns the given *int in the form of *int32. -func Int32Address(i *int) *int32 { - if i == nil { +func ToIntAsInt32Ptr(v *int) *int32 { + if v == nil { return nil } - return aws.Int32(int32(*i)) + val32 := int32(*v) + return &val32 } -// IntAddress converts the supplied int64 pointer to an int pointer, returning nil if -// the pointer is nil. -func IntAddress(i *int64) *int { - if i == nil { +// ToInt32FromIntPtr converts an int32 pointer to an int pointer. +func ToInt32FromIntPtr(v *int32) *int { + if v == nil { return nil } - r := int(*i) - return &r + val := int(*v) + return &val } -// IntFrom32Address converts the supplied int32 pointer to an int pointer, returning nil if -// the pointer is nil. -func IntFrom32Address(i *int32) *int { - if i == nil { +// ToOrNilIfZeroValue returns a pointer to val if it does NOT match the default +// value of T. Otherwise it returns nil. +func ToOrNilIfZeroValue[T comparable](val T) *T { + var defaultVal T + if val == defaultVal { return nil } - r := int(*i) - return &r -} - -// LateInitializeIntPtr returns in if it's non-nil, otherwise returns from -// which is the backup for the cases in is nil. -func LateInitializeIntPtr(in *int, from *int64) *int { - if in != nil { - return in - } - if from != nil { - i := int(*from) - return &i - } - return nil -} - -// LateInitializeIntFrom32Ptr returns in if it's non-nil, otherwise returns from -// which is the backup for the cases in is nil. -// This function considered that nil and 0 values are same. However, for a *int32, nil and 0 values must be different -// because if the external AWS resource has a field with 0 value, during late initialization setting this value -// in CR must be allowed. Please see the LateInitializeIntFromInt32Ptr func. -func LateInitializeIntFrom32Ptr(in *int, from *int32) *int { - if in != nil { - return in - } - if from != nil && *from != 0 { - i := int(*from) - return &i - } - return nil -} - -// LateInitializeIntFromInt32Ptr returns in if it's non-nil, otherwise returns from -// which is the backup for the cases in is nil. -func LateInitializeIntFromInt32Ptr(in *int, from *int32) *int { - if in != nil { - return in - } - - if from != nil { - i := int(*from) - return &i - } - - return nil -} - -// LateInitializeInt32Ptr returns in if it's non-nil, otherwise returns from -// which is the backup for the cases in is nil. -func LateInitializeInt32Ptr(in *int32, from *int32) *int32 { - if in != nil { - return in - } - return from -} - -// LateInitializeInt64Ptr returns in if it's non-nil, otherwise returns from -// which is the backup for the cases in is nil. -func LateInitializeInt64Ptr(in *int64, from *int64) *int64 { - if in != nil { - return in - } - return from -} - -// LateInitializeInt32 returns in if it's non-zero, otherwise returns from -// which is the backup for the cases in is zero. -func LateInitializeInt32(in int32, from int32) int32 { - if in != 0 { - return in - } - return from -} - -// LateInitializeInt64 returns in if it's non-zero, otherwise returns from -// which is the backup for the cases in is zero. -func LateInitializeInt64(in int64, from int64) int64 { - if in != 0 { - return in - } - return from -} - -// LateInitializeStringPtrSlice returns in if it's non-nil or from is zero -// length, otherwise it returns from. -func LateInitializeStringPtrSlice(in []*string, from []*string) []*string { - if in != nil || len(from) == 0 { - return in - } - - return from -} - -// LateInitializeInt64PtrSlice returns in if it's non-nil or from is zero -// length, otherwise it returns from. -func LateInitializeInt64PtrSlice(in []*int64, from []*int64) []*int64 { - if in != nil || len(from) == 0 { - return in - } - - return from -} - -// Bool converts the supplied bool for use with the AWS Go SDK. -func Bool(v bool, o ...FieldOption) *bool { - for _, fo := range o { - if fo == FieldRequired && !v { - return aws.Bool(v) - } - } - - if !v { - return nil - } - return aws.Bool(v) -} - -// LateInitializeBoolPtr returns in if it's non-nil, otherwise returns from -// which is the backup for the cases in is nil. -func LateInitializeBoolPtr(in *bool, from *bool) *bool { - if in != nil { - return in - } - return from + return &val } diff --git a/pkg/utils/pointer/pointer_test.go b/pkg/utils/pointer/pointer_test.go deleted file mode 100644 index 8d1c4efcdc..0000000000 --- a/pkg/utils/pointer/pointer_test.go +++ /dev/null @@ -1,117 +0,0 @@ -/* -Copyright 2023 The Crossplane Authors. - -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 - -import ( - "testing" - - "github.com/google/go-cmp/cmp" -) - -func TestLateInitStringPtrSlice(t *testing.T) { - type args struct { - in []*string - from []*string - } - - cases := map[string]struct { - args args - want []*string - }{ - "BothNil": { - args: args{}, - want: nil, - }, - "BothEmpty": { - args: args{ - in: []*string{}, - from: []*string{}, - }, - want: []*string{}, - }, - "FromNil": { - args: args{ - in: StringSliceToPtr([]string{"hi!"}), - from: nil, - }, - want: StringSliceToPtr([]string{"hi!"}), - }, - "InNil": { - args: args{ - in: nil, - from: StringSliceToPtr([]string{"hi!"}), - }, - want: StringSliceToPtr([]string{"hi!"}), - }, - } - - for name, tc := range cases { - t.Run(name, func(t *testing.T) { - got := LateInitializeStringPtrSlice(tc.args.in, tc.args.from) - if diff := cmp.Diff(got, tc.want); diff != "" { - t.Errorf("\nLateInitializeStringPtrSlice(...): -got, +want:\n%s", diff) - } - }) - } -} - -func TestLateInitInt64PtrSlice(t *testing.T) { - type args struct { - in []*int64 - from []*int64 - } - - cases := map[string]struct { - args args - want []*int64 - }{ - "BothNil": { - args: args{}, - want: nil, - }, - "BothEmpty": { - args: args{ - in: []*int64{}, - from: []*int64{}, - }, - want: []*int64{}, - }, - "FromNil": { - args: args{ - in: Int64Slice([]int64{1}), - from: nil, - }, - want: Int64Slice([]int64{1}), - }, - "InNil": { - args: args{ - in: nil, - from: Int64Slice([]int64{1}), - }, - want: Int64Slice([]int64{1}), - }, - } - - for name, tc := range cases { - t.Run(name, func(t *testing.T) { - got := LateInitializeInt64PtrSlice(tc.args.in, tc.args.from) - if diff := cmp.Diff(got, tc.want); diff != "" { - t.Errorf("\nLateInitializeInt64PtrSlice(...): -got, +want:\n%s", diff) - } - }) - } -}