From 4d7904cdfb2a96509591092a3a038b65717bc1da Mon Sep 17 00:00:00 2001 From: Herman Schaaf Date: Thu, 22 Sep 2022 15:59:37 +0100 Subject: [PATCH] fix: Remove underscores in ec_2, s_3 and others --- plugins/source/aws/codegen/recipes/base.go | 19 +++++++++++++++++++ .../resources/services/cloudtrail/trails.go | 4 ++-- .../services/config/conformance_packs.go | 4 ++-- .../services/directconnect/connections.go | 2 +- .../resources/services/directconnect/lags.go | 2 +- .../directconnect/virtual_interfaces.go | 2 +- .../source/aws/resources/services/ec2/eips.go | 4 ++-- .../aws/resources/services/ec2/instances.go | 2 +- .../services/ec2/network_interfaces.go | 10 +++++----- .../aws/resources/services/ec2/subnets.go | 10 +++++----- .../source/aws/resources/services/ec2/vpcs.go | 2 +- .../ecs/cluster_container_instances.go | 2 +- .../services/elbv2/load_balancers.go | 2 +- .../aws/resources/services/emr/clusters.go | 2 +- .../fsx/data_repository_associations.go | 2 +- .../resources/services/glue/dev_endpoints.go | 4 ++-- .../services/iam/credential_reports.go | 16 ++++++++-------- .../services/iam/virtual_mfa_devices.go | 2 +- .../services/iot/security_profiles.go | 2 +- .../services/lambda/function_versions.go | 2 +- .../lightsail/instance_port_states.go | 2 +- .../resources/services/lightsail/instances.go | 2 +- .../qldb/ledger_journal_s3_exports.go | 2 +- .../aws/resources/services/rds/clusters.go | 2 +- .../services/rds/db_security_groups.go | 2 +- .../aws/resources/services/ssm/documents.go | 2 +- 26 files changed, 63 insertions(+), 44 deletions(-) diff --git a/plugins/source/aws/codegen/recipes/base.go b/plugins/source/aws/codegen/recipes/base.go index ccb962f313b839..e093801f8f04db 100644 --- a/plugins/source/aws/codegen/recipes/base.go +++ b/plugins/source/aws/codegen/recipes/base.go @@ -7,6 +7,8 @@ import ( "go/format" "os" "path" + "reflect" + "regexp" "runtime" "strings" "text/template" @@ -54,6 +56,22 @@ var defaultRegionalColumns = []codegen.ColumnDefinition{ }, } +func awsNameTransformer(f reflect.StructField) (string, error) { + name, err := codegen.DefaultNameTransformer(f) + if err != nil { + return name, err + } + // replace occurrences with with + + // (this is codegen, no need to hyper-optimize by pre-compiling regular expressions) + r, err := regexp.Compile(`_(\d+)`) + if err != nil { + return "", err + } + + return r.ReplaceAllString(name, `$1`), nil +} + func (r *Resource) Generate() error { _, filename, _, ok := runtime.Caller(0) if !ok { @@ -65,6 +83,7 @@ func (r *Resource) Generate() error { opts := []codegen.TableOptions{ codegen.WithSkipFields(r.SkipFields), codegen.WithExtraColumns(r.ExtraColumns), + codegen.WithNameTransformer(awsNameTransformer), } if r.UnwrapEmbeddedStructs { opts = append(opts, codegen.WithUnwrapAllEmbeddedStructs()) diff --git a/plugins/source/aws/resources/services/cloudtrail/trails.go b/plugins/source/aws/resources/services/cloudtrail/trails.go index 6fcb4c80e48f49..c14956a2683e29 100644 --- a/plugins/source/aws/resources/services/cloudtrail/trails.go +++ b/plugins/source/aws/resources/services/cloudtrail/trails.go @@ -97,12 +97,12 @@ func Trails() *schema.Table { Resolver: schema.PathResolver("Name"), }, { - Name: "s_3_bucket_name", + Name: "s3_bucket_name", Type: schema.TypeString, Resolver: schema.PathResolver("S3BucketName"), }, { - Name: "s_3_key_prefix", + Name: "s3_key_prefix", Type: schema.TypeString, Resolver: schema.PathResolver("S3KeyPrefix"), }, diff --git a/plugins/source/aws/resources/services/config/conformance_packs.go b/plugins/source/aws/resources/services/config/conformance_packs.go index 060c3fbde17474..989329f1bbda40 100644 --- a/plugins/source/aws/resources/services/config/conformance_packs.go +++ b/plugins/source/aws/resources/services/config/conformance_packs.go @@ -47,12 +47,12 @@ func ConformancePacks() *schema.Table { Resolver: schema.PathResolver("CreatedBy"), }, { - Name: "delivery_s_3_bucket", + Name: "delivery_s3_bucket", Type: schema.TypeString, Resolver: schema.PathResolver("DeliveryS3Bucket"), }, { - Name: "delivery_s_3_key_prefix", + Name: "delivery_s3_key_prefix", Type: schema.TypeString, Resolver: schema.PathResolver("DeliveryS3KeyPrefix"), }, diff --git a/plugins/source/aws/resources/services/directconnect/connections.go b/plugins/source/aws/resources/services/directconnect/connections.go index 602da0e34dcced..5a246312bcb480 100644 --- a/plugins/source/aws/resources/services/directconnect/connections.go +++ b/plugins/source/aws/resources/services/directconnect/connections.go @@ -50,7 +50,7 @@ func Connections() *schema.Table { Resolver: schema.PathResolver("AwsDevice"), }, { - Name: "aws_device_v_2", + Name: "aws_device_v2", Type: schema.TypeString, Resolver: schema.PathResolver("AwsDeviceV2"), }, diff --git a/plugins/source/aws/resources/services/directconnect/lags.go b/plugins/source/aws/resources/services/directconnect/lags.go index b15e8d7acb8a05..7d77830af5964f 100644 --- a/plugins/source/aws/resources/services/directconnect/lags.go +++ b/plugins/source/aws/resources/services/directconnect/lags.go @@ -52,7 +52,7 @@ func Lags() *schema.Table { Resolver: schema.PathResolver("AwsDevice"), }, { - Name: "aws_device_v_2", + Name: "aws_device_v2", Type: schema.TypeString, Resolver: schema.PathResolver("AwsDeviceV2"), }, diff --git a/plugins/source/aws/resources/services/directconnect/virtual_interfaces.go b/plugins/source/aws/resources/services/directconnect/virtual_interfaces.go index a79051ffb572bb..5217adff0f0458 100644 --- a/plugins/source/aws/resources/services/directconnect/virtual_interfaces.go +++ b/plugins/source/aws/resources/services/directconnect/virtual_interfaces.go @@ -67,7 +67,7 @@ func VirtualInterfaces() *schema.Table { Resolver: schema.PathResolver("AuthKey"), }, { - Name: "aws_device_v_2", + Name: "aws_device_v2", Type: schema.TypeString, Resolver: schema.PathResolver("AwsDeviceV2"), }, diff --git a/plugins/source/aws/resources/services/ec2/eips.go b/plugins/source/aws/resources/services/ec2/eips.go index 39ec16590a07e8..98be569f59e6a4 100644 --- a/plugins/source/aws/resources/services/ec2/eips.go +++ b/plugins/source/aws/resources/services/ec2/eips.go @@ -44,7 +44,7 @@ func Eips() *schema.Table { Resolver: schema.PathResolver("CustomerOwnedIp"), }, { - Name: "customer_owned_ipv_4_pool", + Name: "customer_owned_ipv4_pool", Type: schema.TypeString, Resolver: schema.PathResolver("CustomerOwnedIpv4Pool"), }, @@ -84,7 +84,7 @@ func Eips() *schema.Table { Resolver: schema.PathResolver("PublicIp"), }, { - Name: "public_ipv_4_pool", + Name: "public_ipv4_pool", Type: schema.TypeString, Resolver: schema.PathResolver("PublicIpv4Pool"), }, diff --git a/plugins/source/aws/resources/services/ec2/instances.go b/plugins/source/aws/resources/services/ec2/instances.go index cfb40a0cc47ef8..5ebd3660029004 100644 --- a/plugins/source/aws/resources/services/ec2/instances.go +++ b/plugins/source/aws/resources/services/ec2/instances.go @@ -132,7 +132,7 @@ func Instances() *schema.Table { Resolver: schema.PathResolver("InstanceType"), }, { - Name: "ipv_6_address", + Name: "ipv6_address", Type: schema.TypeString, Resolver: schema.PathResolver("Ipv6Address"), }, diff --git a/plugins/source/aws/resources/services/ec2/network_interfaces.go b/plugins/source/aws/resources/services/ec2/network_interfaces.go index 0b46b724959eda..4a84b6e0b87c46 100644 --- a/plugins/source/aws/resources/services/ec2/network_interfaces.go +++ b/plugins/source/aws/resources/services/ec2/network_interfaces.go @@ -67,27 +67,27 @@ func NetworkInterfaces() *schema.Table { Resolver: schema.PathResolver("InterfaceType"), }, { - Name: "ipv_4_prefixes", + Name: "ipv4_prefixes", Type: schema.TypeJSON, Resolver: schema.PathResolver("Ipv4Prefixes"), }, { - Name: "ipv_6_address", + Name: "ipv6_address", Type: schema.TypeString, Resolver: schema.PathResolver("Ipv6Address"), }, { - Name: "ipv_6_addresses", + Name: "ipv6_addresses", Type: schema.TypeJSON, Resolver: schema.PathResolver("Ipv6Addresses"), }, { - Name: "ipv_6_native", + Name: "ipv6_native", Type: schema.TypeBool, Resolver: schema.PathResolver("Ipv6Native"), }, { - Name: "ipv_6_prefixes", + Name: "ipv6_prefixes", Type: schema.TypeJSON, Resolver: schema.PathResolver("Ipv6Prefixes"), }, diff --git a/plugins/source/aws/resources/services/ec2/subnets.go b/plugins/source/aws/resources/services/ec2/subnets.go index e91a5e1a7bec47..7101c5e91265e8 100644 --- a/plugins/source/aws/resources/services/ec2/subnets.go +++ b/plugins/source/aws/resources/services/ec2/subnets.go @@ -32,7 +32,7 @@ func Subnets() *schema.Table { }, }, { - Name: "assign_ipv_6_address_on_creation", + Name: "assign_ipv6_address_on_creation", Type: schema.TypeBool, Resolver: schema.PathResolver("AssignIpv6AddressOnCreation"), }, @@ -57,7 +57,7 @@ func Subnets() *schema.Table { Resolver: schema.PathResolver("CidrBlock"), }, { - Name: "customer_owned_ipv_4_pool", + Name: "customer_owned_ipv4_pool", Type: schema.TypeString, Resolver: schema.PathResolver("CustomerOwnedIpv4Pool"), }, @@ -67,7 +67,7 @@ func Subnets() *schema.Table { Resolver: schema.PathResolver("DefaultForAz"), }, { - Name: "enable_dns_64", + Name: "enable_dns64", Type: schema.TypeBool, Resolver: schema.PathResolver("EnableDns64"), }, @@ -77,12 +77,12 @@ func Subnets() *schema.Table { Resolver: schema.PathResolver("EnableLniAtDeviceIndex"), }, { - Name: "ipv_6_cidr_block_association_set", + Name: "ipv6_cidr_block_association_set", Type: schema.TypeJSON, Resolver: schema.PathResolver("Ipv6CidrBlockAssociationSet"), }, { - Name: "ipv_6_native", + Name: "ipv6_native", Type: schema.TypeBool, Resolver: schema.PathResolver("Ipv6Native"), }, diff --git a/plugins/source/aws/resources/services/ec2/vpcs.go b/plugins/source/aws/resources/services/ec2/vpcs.go index fe4ef39525d348..1d5b9f1a47809b 100644 --- a/plugins/source/aws/resources/services/ec2/vpcs.go +++ b/plugins/source/aws/resources/services/ec2/vpcs.go @@ -52,7 +52,7 @@ func Vpcs() *schema.Table { Resolver: schema.PathResolver("InstanceTenancy"), }, { - Name: "ipv_6_cidr_block_association_set", + Name: "ipv6_cidr_block_association_set", Type: schema.TypeJSON, Resolver: schema.PathResolver("Ipv6CidrBlockAssociationSet"), }, diff --git a/plugins/source/aws/resources/services/ecs/cluster_container_instances.go b/plugins/source/aws/resources/services/ecs/cluster_container_instances.go index 44b43dbf2ae355..8d1539c6e20bd1 100644 --- a/plugins/source/aws/resources/services/ecs/cluster_container_instances.go +++ b/plugins/source/aws/resources/services/ecs/cluster_container_instances.go @@ -64,7 +64,7 @@ func ClusterContainerInstances() *schema.Table { Resolver: schema.PathResolver("ContainerInstanceArn"), }, { - Name: "ec_2_instance_id", + Name: "ec2_instance_id", Type: schema.TypeString, Resolver: schema.PathResolver("Ec2InstanceId"), }, diff --git a/plugins/source/aws/resources/services/elbv2/load_balancers.go b/plugins/source/aws/resources/services/elbv2/load_balancers.go index 03632746c85920..4ea19be86e3470 100644 --- a/plugins/source/aws/resources/services/elbv2/load_balancers.go +++ b/plugins/source/aws/resources/services/elbv2/load_balancers.go @@ -58,7 +58,7 @@ func LoadBalancers() *schema.Table { Resolver: schema.PathResolver("CreatedTime"), }, { - Name: "customer_owned_ipv_4_pool", + Name: "customer_owned_ipv4_pool", Type: schema.TypeString, Resolver: schema.PathResolver("CustomerOwnedIpv4Pool"), }, diff --git a/plugins/source/aws/resources/services/emr/clusters.go b/plugins/source/aws/resources/services/emr/clusters.go index b852979b87ce42..6d0154346cc54f 100644 --- a/plugins/source/aws/resources/services/emr/clusters.go +++ b/plugins/source/aws/resources/services/emr/clusters.go @@ -67,7 +67,7 @@ func Clusters() *schema.Table { Resolver: schema.PathResolver("EbsRootVolumeSize"), }, { - Name: "ec_2_instance_attributes", + Name: "ec2_instance_attributes", Type: schema.TypeJSON, Resolver: schema.PathResolver("Ec2InstanceAttributes"), }, diff --git a/plugins/source/aws/resources/services/fsx/data_repository_associations.go b/plugins/source/aws/resources/services/fsx/data_repository_associations.go index d6f6bc6e1fac8d..6cd67d94f2f749 100644 --- a/plugins/source/aws/resources/services/fsx/data_repository_associations.go +++ b/plugins/source/aws/resources/services/fsx/data_repository_associations.go @@ -82,7 +82,7 @@ func DataRepositoryAssociations() *schema.Table { Resolver: schema.PathResolver("Lifecycle"), }, { - Name: "s_3", + Name: "s3", Type: schema.TypeJSON, Resolver: schema.PathResolver("S3"), }, diff --git a/plugins/source/aws/resources/services/glue/dev_endpoints.go b/plugins/source/aws/resources/services/glue/dev_endpoints.go index f83b0cdf789b50..477affe9f0f425 100644 --- a/plugins/source/aws/resources/services/glue/dev_endpoints.go +++ b/plugins/source/aws/resources/services/glue/dev_endpoints.go @@ -57,12 +57,12 @@ func DevEndpoints() *schema.Table { Resolver: schema.PathResolver("EndpointName"), }, { - Name: "extra_jars_s_3_path", + Name: "extra_jars_s3_path", Type: schema.TypeString, Resolver: schema.PathResolver("ExtraJarsS3Path"), }, { - Name: "extra_python_libs_s_3_path", + Name: "extra_python_libs_s3_path", Type: schema.TypeString, Resolver: schema.PathResolver("ExtraPythonLibsS3Path"), }, diff --git a/plugins/source/aws/resources/services/iam/credential_reports.go b/plugins/source/aws/resources/services/iam/credential_reports.go index f8ca219c29fb3d..3602ab0e980d2d 100644 --- a/plugins/source/aws/resources/services/iam/credential_reports.go +++ b/plugins/source/aws/resources/services/iam/credential_reports.go @@ -90,42 +90,42 @@ func CredentialReports() *schema.Table { Resolver: schema.PathResolver("MfaActive"), }, { - Name: "access_key_1_active", + Name: "access_key1_active", Type: schema.TypeBool, Resolver: schema.PathResolver("AccessKey1Active"), }, { - Name: "access_key_2_active", + Name: "access_key2_active", Type: schema.TypeBool, Resolver: schema.PathResolver("AccessKey2Active"), }, { - Name: "cert_1_active", + Name: "cert1_active", Type: schema.TypeBool, Resolver: schema.PathResolver("Cert1Active"), }, { - Name: "cert_2_active", + Name: "cert2_active", Type: schema.TypeBool, Resolver: schema.PathResolver("Cert2Active"), }, { - Name: "access_key_1_last_used_region", + Name: "access_key1_last_used_region", Type: schema.TypeString, Resolver: schema.PathResolver("AccessKey1LastUsedRegion"), }, { - Name: "access_key_1_last_used_service", + Name: "access_key1_last_used_service", Type: schema.TypeString, Resolver: schema.PathResolver("AccessKey1LastUsedService"), }, { - Name: "access_key_2_last_used_region", + Name: "access_key2_last_used_region", Type: schema.TypeString, Resolver: schema.PathResolver("AccessKey2LastUsedRegion"), }, { - Name: "access_key_2_last_used_service", + Name: "access_key2_last_used_service", Type: schema.TypeString, Resolver: schema.PathResolver("AccessKey2LastUsedService"), }, diff --git a/plugins/source/aws/resources/services/iam/virtual_mfa_devices.go b/plugins/source/aws/resources/services/iam/virtual_mfa_devices.go index 32c748c7730916..d942c954b3c590 100644 --- a/plugins/source/aws/resources/services/iam/virtual_mfa_devices.go +++ b/plugins/source/aws/resources/services/iam/virtual_mfa_devices.go @@ -36,7 +36,7 @@ func VirtualMfaDevices() *schema.Table { Resolver: client.ResolveTags, }, { - Name: "base_32_string_seed", + Name: "base32_string_seed", Type: schema.TypeIntArray, Resolver: schema.PathResolver("Base32StringSeed"), }, diff --git a/plugins/source/aws/resources/services/iot/security_profiles.go b/plugins/source/aws/resources/services/iot/security_profiles.go index 651330fd697ab8..176f494d676358 100644 --- a/plugins/source/aws/resources/services/iot/security_profiles.go +++ b/plugins/source/aws/resources/services/iot/security_profiles.go @@ -47,7 +47,7 @@ func SecurityProfiles() *schema.Table { Resolver: schema.PathResolver("AdditionalMetricsToRetain"), }, { - Name: "additional_metrics_to_retain_v_2", + Name: "additional_metrics_to_retain_v2", Type: schema.TypeJSON, Resolver: schema.PathResolver("AdditionalMetricsToRetainV2"), }, diff --git a/plugins/source/aws/resources/services/lambda/function_versions.go b/plugins/source/aws/resources/services/lambda/function_versions.go index d85d2351fbb42d..fcd2108907833b 100644 --- a/plugins/source/aws/resources/services/lambda/function_versions.go +++ b/plugins/source/aws/resources/services/lambda/function_versions.go @@ -34,7 +34,7 @@ func FunctionVersions() *schema.Table { Resolver: schema.PathResolver("Architectures"), }, { - Name: "code_sha_256", + Name: "code_sha256", Type: schema.TypeString, Resolver: schema.PathResolver("CodeSha256"), }, diff --git a/plugins/source/aws/resources/services/lightsail/instance_port_states.go b/plugins/source/aws/resources/services/lightsail/instance_port_states.go index 7093bfba8385d7..e09c725fa704bf 100644 --- a/plugins/source/aws/resources/services/lightsail/instance_port_states.go +++ b/plugins/source/aws/resources/services/lightsail/instance_port_states.go @@ -44,7 +44,7 @@ func InstancePortStates() *schema.Table { Resolver: schema.PathResolver("FromPort"), }, { - Name: "ipv_6_cidrs", + Name: "ipv6_cidrs", Type: schema.TypeStringArray, Resolver: schema.PathResolver("Ipv6Cidrs"), }, diff --git a/plugins/source/aws/resources/services/lightsail/instances.go b/plugins/source/aws/resources/services/lightsail/instances.go index 14a754ba5ac555..2426fa049631a9 100644 --- a/plugins/source/aws/resources/services/lightsail/instances.go +++ b/plugins/source/aws/resources/services/lightsail/instances.go @@ -76,7 +76,7 @@ func Instances() *schema.Table { Resolver: schema.PathResolver("IpAddressType"), }, { - Name: "ipv_6_addresses", + Name: "ipv6_addresses", Type: schema.TypeStringArray, Resolver: schema.PathResolver("Ipv6Addresses"), }, diff --git a/plugins/source/aws/resources/services/qldb/ledger_journal_s3_exports.go b/plugins/source/aws/resources/services/qldb/ledger_journal_s3_exports.go index 7324800c6b71c5..f258fdac131495 100644 --- a/plugins/source/aws/resources/services/qldb/ledger_journal_s3_exports.go +++ b/plugins/source/aws/resources/services/qldb/ledger_journal_s3_exports.go @@ -59,7 +59,7 @@ func LedgerJournalS3Exports() *schema.Table { Resolver: schema.PathResolver("RoleArn"), }, { - Name: "s_3_export_configuration", + Name: "s3_export_configuration", Type: schema.TypeJSON, Resolver: schema.PathResolver("S3ExportConfiguration"), }, diff --git a/plugins/source/aws/resources/services/rds/clusters.go b/plugins/source/aws/resources/services/rds/clusters.go index 51aabfea32a4c5..2e3bfbd06db274 100644 --- a/plugins/source/aws/resources/services/rds/clusters.go +++ b/plugins/source/aws/resources/services/rds/clusters.go @@ -342,7 +342,7 @@ func Clusters() *schema.Table { Resolver: schema.PathResolver("ScalingConfigurationInfo"), }, { - Name: "serverless_v_2_scaling_configuration", + Name: "serverless_v2_scaling_configuration", Type: schema.TypeJSON, Resolver: schema.PathResolver("ServerlessV2ScalingConfiguration"), }, diff --git a/plugins/source/aws/resources/services/rds/db_security_groups.go b/plugins/source/aws/resources/services/rds/db_security_groups.go index cf6b3116b7a801..95d2322e787b0c 100644 --- a/plugins/source/aws/resources/services/rds/db_security_groups.go +++ b/plugins/source/aws/resources/services/rds/db_security_groups.go @@ -47,7 +47,7 @@ func DbSecurityGroups() *schema.Table { Resolver: schema.PathResolver("DBSecurityGroupName"), }, { - Name: "ec_2_security_groups", + Name: "ec2_security_groups", Type: schema.TypeJSON, Resolver: schema.PathResolver("EC2SecurityGroups"), }, diff --git a/plugins/source/aws/resources/services/ssm/documents.go b/plugins/source/aws/resources/services/ssm/documents.go index 15297fd0a5a604..f2a6dd415a87a0 100644 --- a/plugins/source/aws/resources/services/ssm/documents.go +++ b/plugins/source/aws/resources/services/ssm/documents.go @@ -162,7 +162,7 @@ func Documents() *schema.Table { Resolver: schema.PathResolver("SchemaVersion"), }, { - Name: "sha_1", + Name: "sha1", Type: schema.TypeString, Resolver: schema.PathResolver("Sha1"), },