master 1807affdde9e cached
870 files
2.6 MB
729.3k tokens
3496 symbols
1 requests
Download .txt
Showing preview only (2,902K chars total). Download the full file or copy to clipboard to get everything.
Repository: GoogleCloudPlatform/terraformer
Branch: master
Commit: 1807affdde9e
Files: 870
Total size: 2.6 MB

Directory structure:
gitextract_61d3pq2n/

├── .github/
│   ├── dependabot.yml
│   └── workflows/
│       ├── linter.yml
│       ├── release.yaml
│       ├── stale.yaml
│       └── test.yml
├── .gitignore
├── .golangci.json
├── AUTHORS
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── SECURITY.md
├── build/
│   ├── main.go
│   └── multi-build/
│       └── main.go
├── cmd/
│   ├── import.go
│   ├── plan.go
│   ├── provider_cmd_alicloud.go
│   ├── provider_cmd_auth0.go
│   ├── provider_cmd_aws.go
│   ├── provider_cmd_azure.go
│   ├── provider_cmd_azuread.go
│   ├── provider_cmd_azuredevops.go
│   ├── provider_cmd_cloudflare.go
│   ├── provider_cmd_commercetools.go
│   ├── provider_cmd_datadog.go
│   ├── provider_cmd_digitalocean.go
│   ├── provider_cmd_equinixmetal.go
│   ├── provider_cmd_fastly.go
│   ├── provider_cmd_github.go
│   ├── provider_cmd_gitlab.go
│   ├── provider_cmd_gmailfilter.go
│   ├── provider_cmd_google.go
│   ├── provider_cmd_grafana.go
│   ├── provider_cmd_heroku.go
│   ├── provider_cmd_honeycombio.go
│   ├── provider_cmd_ibm.go
│   ├── provider_cmd_ionoscloud.go
│   ├── provider_cmd_keycloak.go
│   ├── provider_cmd_kubernetes.go
│   ├── provider_cmd_launchdarkly.go
│   ├── provider_cmd_linode.go
│   ├── provider_cmd_logzio.go
│   ├── provider_cmd_mackerel.go
│   ├── provider_cmd_mikrotik.go
│   ├── provider_cmd_myrasec.go
│   ├── provider_cmd_newrelic.go
│   ├── provider_cmd_ns1.go
│   ├── provider_cmd_octopusdeploy.go
│   ├── provider_cmd_okta.go
│   ├── provider_cmd_opal.go
│   ├── provider_cmd_openstack.go
│   ├── provider_cmd_opsgenie.go
│   ├── provider_cmd_pagerduty.go
│   ├── provider_cmd_panos.go
│   ├── provider_cmd_rabbitmq.go
│   ├── provider_cmd_tencentcloud.go
│   ├── provider_cmd_vault.go
│   ├── provider_cmd_vultr.go
│   ├── provider_cmd_xenorchestra.go
│   ├── provider_cmd_yandex.go
│   ├── root.go
│   └── version.go
├── docs/
│   ├── alicloud.md
│   ├── auth0.md
│   ├── aws.md
│   ├── azure.md
│   ├── azuread.md
│   ├── azuredevops.md
│   ├── cloudflare.md
│   ├── commercetools.md
│   ├── datadog.md
│   ├── digitalocean.md
│   ├── equinixmetal.md
│   ├── fastly.md
│   ├── gcp.md
│   ├── github.md
│   ├── gitlab.md
│   ├── gmailfilter.md
│   ├── grafana.md
│   ├── heroku.md
│   ├── honeycombio.md
│   ├── ibmcloud.md
│   ├── ionoscloud.md
│   ├── keycloak.md
│   ├── kubernetes.md
│   ├── launchdarkly.md
│   ├── linode.md
│   ├── logz.md
│   ├── mackerel.md
│   ├── mikrotik.md
│   ├── myrasec.md
│   ├── ns1.md
│   ├── octopus.md
│   ├── okta.md
│   ├── opal.md
│   ├── openstack.md
│   ├── opsgenie.md
│   ├── pagerduty.md
│   ├── panos.md
│   ├── rabbitmq.md
│   ├── relic.md
│   ├── tencentcloud.md
│   ├── vault.md
│   ├── vultr.md
│   ├── xen.md
│   └── yandex.md
├── go.mod
├── go.sum
├── main.go
├── providers/
│   ├── alicloud/
│   │   ├── alicloud_provider.go
│   │   ├── alicloud_service.go
│   │   ├── connectivity/
│   │   │   ├── client.go
│   │   │   ├── config.go
│   │   │   ├── endpoint.go
│   │   │   └── regions.go
│   │   ├── dns.go
│   │   ├── ecs.go
│   │   ├── key_pair.go
│   │   ├── nat_gateway.go
│   │   ├── pvtz.go
│   │   ├── ram.go
│   │   ├── rds.go
│   │   ├── sg.go
│   │   ├── slb.go
│   │   ├── vpc.go
│   │   └── vswitch.go
│   ├── auth0/
│   │   ├── action.go
│   │   ├── auth0_provider.go
│   │   ├── auth0_service.go
│   │   ├── branding.go
│   │   ├── client.go
│   │   ├── client_grant.go
│   │   ├── custom_domain.go
│   │   ├── email.go
│   │   ├── hook.go
│   │   ├── log_stream.go
│   │   ├── prompt.go
│   │   ├── resource_server.go
│   │   ├── role.go
│   │   ├── rule.go
│   │   ├── rule_config.go
│   │   ├── tenant.go
│   │   ├── trigger_binding.go
│   │   └── user.go
│   ├── aws/
│   │   ├── accessanalyzer.go
│   │   ├── acm.go
│   │   ├── alb.go
│   │   ├── api_gateway.go
│   │   ├── api_gatewayv2.go
│   │   ├── appsync.go
│   │   ├── autoscaling.go
│   │   ├── aws_facade.go
│   │   ├── aws_provider.go
│   │   ├── aws_service.go
│   │   ├── batch.go
│   │   ├── budgets.go
│   │   ├── cloud9.go
│   │   ├── cloud_front.go
│   │   ├── cloudformation.go
│   │   ├── cloudhsm.go
│   │   ├── cloudtrail.go
│   │   ├── cloudwatch.go
│   │   ├── codebuild.go
│   │   ├── codecommit.go
│   │   ├── codedeploy.go
│   │   ├── codepipeline.go
│   │   ├── cognito.go
│   │   ├── config.go
│   │   ├── customer_gateway.go
│   │   ├── datapipeline.go
│   │   ├── devicefarm.go
│   │   ├── docdb.go
│   │   ├── dx.go
│   │   ├── dynamodb.go
│   │   ├── ebs.go
│   │   ├── ec2.go
│   │   ├── ecr.go
│   │   ├── ecrpublic.go
│   │   ├── ecs.go
│   │   ├── efs.go
│   │   ├── eip.go
│   │   ├── eks.go
│   │   ├── elastic_beanstalk.go
│   │   ├── elasticache.go
│   │   ├── elb.go
│   │   ├── emr.go
│   │   ├── eni.go
│   │   ├── es.go
│   │   ├── firehose.go
│   │   ├── glue.go
│   │   ├── iam.go
│   │   ├── identitystore.go
│   │   ├── igw.go
│   │   ├── iot.go
│   │   ├── kinesis.go
│   │   ├── kms.go
│   │   ├── lambda.go
│   │   ├── logs.go
│   │   ├── media_package.go
│   │   ├── media_store.go
│   │   ├── medialive.go
│   │   ├── mq.go
│   │   ├── msk.go
│   │   ├── nacl.go
│   │   ├── nat_gateway.go
│   │   ├── opsworks.go
│   │   ├── organization.go
│   │   ├── qldb.go
│   │   ├── rds.go
│   │   ├── redshift.go
│   │   ├── resourcegroups.go
│   │   ├── route53.go
│   │   ├── route_table.go
│   │   ├── s3.go
│   │   ├── secretsmanager.go
│   │   ├── securityhub.go
│   │   ├── servicecatalog.go
│   │   ├── ses.go
│   │   ├── sfn.go
│   │   ├── sg.go
│   │   ├── sg_test.go
│   │   ├── sns.go
│   │   ├── sqs.go
│   │   ├── ssm.go
│   │   ├── subnet.go
│   │   ├── swf.go
│   │   ├── transit_gateway.go
│   │   ├── vgw.go
│   │   ├── vpc.go
│   │   ├── vpc_endpoint.go
│   │   ├── vpc_peering.go
│   │   ├── vpn_connection.go
│   │   ├── waf.go
│   │   ├── waf_regional.go
│   │   ├── wafv2.go
│   │   ├── workspaces.go
│   │   └── xray.go
│   ├── azure/
│   │   ├── analysis.go
│   │   ├── app_service.go
│   │   ├── application_gateway.go
│   │   ├── azure_provider.go
│   │   ├── azure_service.go
│   │   ├── container.go
│   │   ├── cosmosdb.go
│   │   ├── data_factory.go
│   │   ├── database.go
│   │   ├── databricks.go
│   │   ├── disk.go
│   │   ├── dns.go
│   │   ├── eventhub.go
│   │   ├── helper.go
│   │   ├── keyvault.go
│   │   ├── load_balancer.go
│   │   ├── management_lock.go
│   │   ├── network_interface.go
│   │   ├── network_security_group.go
│   │   ├── network_watcher.go
│   │   ├── private_dns.go
│   │   ├── private_endpoint.go
│   │   ├── public_ip.go
│   │   ├── purview.go
│   │   ├── redis.go
│   │   ├── resource_group.go
│   │   ├── route_table.go
│   │   ├── scaleset.go
│   │   ├── security_center_contact.go
│   │   ├── security_center_subscription_pricing.go
│   │   ├── ssh_public_key.go
│   │   ├── storage_account.go
│   │   ├── storage_blob.go
│   │   ├── storage_container.go
│   │   ├── subnet.go
│   │   ├── synapse.go
│   │   ├── virtual_machine.go
│   │   └── virtual_network.go
│   ├── azuread/
│   │   ├── app_role_assignment.go
│   │   ├── application.go
│   │   ├── azuread_provider.go
│   │   ├── azuread_service.go
│   │   ├── group.go
│   │   ├── service_principal.go
│   │   └── user.go
│   ├── azuredevops/
│   │   ├── azuredevops_provider.go
│   │   ├── azuredevops_service.go
│   │   ├── git_repository.go
│   │   ├── group.go
│   │   ├── helpers.go
│   │   └── project.go
│   ├── cloudflare/
│   │   ├── access.go
│   │   ├── account_member.go
│   │   ├── cloudflare_provider.go
│   │   ├── cloudflare_service.go
│   │   ├── dns.go
│   │   ├── firewall.go
│   │   └── page_rule.go
│   ├── commercetools/
│   │   ├── api_extension.go
│   │   ├── channel.go
│   │   ├── commercetools_provider.go
│   │   ├── commercetools_service.go
│   │   ├── connectivity/
│   │   │   ├── client.go
│   │   │   └── config.go
│   │   ├── custom_object.go
│   │   ├── helpers.go
│   │   ├── product_type.go
│   │   ├── shipping_method.go
│   │   ├── shipping_zone.go
│   │   ├── state.go
│   │   ├── store.go
│   │   ├── subscription.go
│   │   ├── tax_category.go
│   │   └── types.go
│   ├── datadog/
│   │   ├── dashboard.go
│   │   ├── dashboard_json.go
│   │   ├── dashboard_list.go
│   │   ├── datadog_provider.go
│   │   ├── datadog_service.go
│   │   ├── downtime.go
│   │   ├── integration_aws.go
│   │   ├── integration_aws_lambda_arn.go
│   │   ├── integration_aws_log_collection.go
│   │   ├── integration_azure.go
│   │   ├── integration_gcp.go
│   │   ├── integration_pagerduty.go
│   │   ├── integration_pagerduty_service_object.go
│   │   ├── integration_slack_channel.go
│   │   ├── logs_archive.go
│   │   ├── logs_archive_order.go
│   │   ├── logs_custom_pipeline.go
│   │   ├── logs_index.go
│   │   ├── logs_index_order.go
│   │   ├── logs_integration_pipeline.go
│   │   ├── logs_metric.go
│   │   ├── logs_pipeline_order.go
│   │   ├── metric_metadata.go
│   │   ├── monitor.go
│   │   ├── role.go
│   │   ├── security_monitoring_default_rule.go
│   │   ├── security_monitoring_rule.go
│   │   ├── service_level_objective.go
│   │   ├── synthetics_global_variable.go
│   │   ├── synthetics_private_location.go
│   │   ├── synthetics_test_.go
│   │   └── user.go
│   ├── digitalocean/
│   │   ├── cdn.go
│   │   ├── certificate.go
│   │   ├── database_cluster.go
│   │   ├── digitalocean_provider.go
│   │   ├── digitalocean_service.go
│   │   ├── domain.go
│   │   ├── droplet.go
│   │   ├── droplet_snapshot.go
│   │   ├── firewall.go
│   │   ├── floating_ip.go
│   │   ├── kubernetes_cluster.go
│   │   ├── loadbalancer.go
│   │   ├── project.go
│   │   ├── ssh_key.go
│   │   ├── tag.go
│   │   ├── token_source.go
│   │   ├── volume.go
│   │   ├── volume_snapshot.go
│   │   └── vpc.go
│   ├── equinixmetal/
│   │   ├── device.go
│   │   ├── equinixmetal_provider.go
│   │   ├── equinixmetal_service.go
│   │   ├── spot_market_request.go
│   │   ├── ssh_key.go
│   │   └── volume.go
│   ├── fastly/
│   │   ├── fastly_provider.go
│   │   ├── fastly_service.go
│   │   ├── service_v1.go
│   │   ├── tls_subscription.go
│   │   └── user.go
│   ├── gcp/
│   │   ├── addresses_gen.go
│   │   ├── autoscalers_gen.go
│   │   ├── backendBuckets_gen.go
│   │   ├── backendServices_gen.go
│   │   ├── bigquery.go
│   │   ├── cloudFunctions.go
│   │   ├── cloudbuild.go
│   │   ├── clouddns.go
│   │   ├── cloudsql.go
│   │   ├── cloudtasks.go
│   │   ├── compute.go
│   │   ├── dataproc.go
│   │   ├── disks_gen.go
│   │   ├── externalVpnGateways_gen.go
│   │   ├── firewall_gen.go
│   │   ├── forwardingRules_gen.go
│   │   ├── gcp_compute_code_generator/
│   │   │   ├── backendServices.go
│   │   │   ├── basicGcpResource.go
│   │   │   ├── globalForwardingRules.go
│   │   │   ├── instanceGroupManagers.go
│   │   │   ├── main.go
│   │   │   └── resources.go
│   │   ├── gcp_facade.go
│   │   ├── gcp_provider.go
│   │   ├── gcp_service.go
│   │   ├── gcs.go
│   │   ├── gke.go
│   │   ├── globalAddresses_gen.go
│   │   ├── globalForwardingRules_gen.go
│   │   ├── healthChecks_gen.go
│   │   ├── httpHealthChecks_gen.go
│   │   ├── httpsHealthChecks_gen.go
│   │   ├── iam.go
│   │   ├── images_gen.go
│   │   ├── instanceGroupManagers_gen.go
│   │   ├── instanceGroups_gen.go
│   │   ├── instanceTemplates_gen.go
│   │   ├── instances.go
│   │   ├── interconnectAttachments_gen.go
│   │   ├── kms.go
│   │   ├── logging.go
│   │   ├── memoryStore.go
│   │   ├── monitoring.go
│   │   ├── networkEndpointGroups_gen.go
│   │   ├── networks_gen.go
│   │   ├── nodeGroups_gen.go
│   │   ├── nodeTemplates_gen.go
│   │   ├── packetMirrorings_gen.go
│   │   ├── project.go
│   │   ├── pubsub.go
│   │   ├── regionAutoscalers_gen.go
│   │   ├── regionBackendServices_gen.go
│   │   ├── regionDisks_gen.go
│   │   ├── regionHealthChecks_gen.go
│   │   ├── regionInstanceGroupManagers_gen.go
│   │   ├── regionInstanceGroups_gen.go
│   │   ├── regionSslCertificates_gen.go
│   │   ├── regionTargetHttpProxies_gen.go
│   │   ├── regionTargetHttpsProxies_gen.go
│   │   ├── regionUrlMaps_gen.go
│   │   ├── reservations_gen.go
│   │   ├── resourcePolicies_gen.go
│   │   ├── routers_gen.go
│   │   ├── routes_gen.go
│   │   ├── schedulerJobs.go
│   │   ├── securityPolicies_gen.go
│   │   ├── sslCertificates_gen.go
│   │   ├── sslPolicies_gen.go
│   │   ├── subnetworks_gen.go
│   │   ├── targetHttpProxies_gen.go
│   │   ├── targetHttpsProxies_gen.go
│   │   ├── targetInstances_gen.go
│   │   ├── targetPools_gen.go
│   │   ├── targetSslProxies_gen.go
│   │   ├── targetTcpProxies_gen.go
│   │   ├── targetVpnGateways_gen.go
│   │   ├── urlMaps_gen.go
│   │   └── vpnTunnels_gen.go
│   ├── github/
│   │   ├── github_organization.go
│   │   ├── github_provider.go
│   │   ├── github_service.go
│   │   ├── members.go
│   │   ├── organizationWebhooks.go
│   │   ├── organization_block.go
│   │   ├── organization_project.go
│   │   ├── repositories.go
│   │   ├── teams.go
│   │   └── user_ssh_keys.go
│   ├── gitlab/
│   │   ├── gitlab_provider.go
│   │   ├── gitlab_service.go
│   │   ├── group.go
│   │   └── project.go
│   ├── gmailfilter/
│   │   ├── filter.go
│   │   ├── gmailfilter_provider.go
│   │   ├── gmailfilter_service.go
│   │   └── label.go
│   ├── grafana/
│   │   ├── dashboard.go
│   │   ├── folder.go
│   │   ├── grafana_provider.go
│   │   └── grafana_service.go
│   ├── heroku/
│   │   ├── account_feature.go
│   │   ├── app.go
│   │   ├── heroku_provider.go
│   │   ├── heroku_service.go
│   │   ├── pipeline.go
│   │   ├── pipeline_coupling.go
│   │   ├── team_collaborator.go
│   │   └── team_member.go
│   ├── honeycombio/
│   │   ├── board.go
│   │   ├── burn_alert.go
│   │   ├── column.go
│   │   ├── dataset.go
│   │   ├── derived_column.go
│   │   ├── honeycomb_provider.go
│   │   ├── honeycomb_service.go
│   │   ├── query.go
│   │   ├── query_annotation.go
│   │   ├── slo.go
│   │   └── trigger.go
│   ├── ibm/
│   │   ├── cis.go
│   │   ├── cloud_functions.go
│   │   ├── cloud_log_analysis.go
│   │   ├── cloud_log_atracker.go
│   │   ├── cloud_monitoring.go
│   │   ├── cloud_watson_machine_learning.go
│   │   ├── cloud_watson_studio.go
│   │   ├── container_cluster.go
│   │   ├── continuous_delivery.go
│   │   ├── cos.go
│   │   ├── database_elasticsearch.go
│   │   ├── database_etcd.go
│   │   ├── database_mongo.go
│   │   ├── database_postgresql.go
│   │   ├── database_rabbitmq.go
│   │   ├── database_redis.go
│   │   ├── helpers.go
│   │   ├── iam.go
│   │   ├── ibm_cd_toolchain.go
│   │   ├── ibm_certificate_manager.go
│   │   ├── ibm_cloudant.go
│   │   ├── ibm_code_engine.go
│   │   ├── ibm_dl.go
│   │   ├── ibm_is_floating_ip.go
│   │   ├── ibm_is_flow_log.go
│   │   ├── ibm_is_ike_policy.go
│   │   ├── ibm_is_image.go
│   │   ├── ibm_is_instance.go
│   │   ├── ibm_is_instance_template.go
│   │   ├── ibm_is_ipsec_policy.go
│   │   ├── ibm_is_lb.go
│   │   ├── ibm_is_network_acl.go
│   │   ├── ibm_is_public_gateway.go
│   │   ├── ibm_is_security_group.go
│   │   ├── ibm_is_ssh_key.go
│   │   ├── ibm_is_subnet.go
│   │   ├── ibm_is_virtual_endpoint_gateway.go
│   │   ├── ibm_is_volume.go
│   │   ├── ibm_is_vpc.go
│   │   ├── ibm_is_vpc_address_prefix.go
│   │   ├── ibm_is_vpc_route.go
│   │   ├── ibm_is_vpc_routing_table.go
│   │   ├── ibm_is_vpn_gateway.go
│   │   ├── ibm_kp.go
│   │   ├── ibm_private_dns.go
│   │   ├── ibm_provider.go
│   │   ├── ibm_secret_manager.go
│   │   ├── ibm_service.go
│   │   ├── ibm_tg.go
│   │   ├── instance_groups.go
│   │   ├── satellite_control_plane.go
│   │   ├── satellite_data_plane.go
│   │   ├── utils.go
│   │   └── vpc_cluster.go
│   ├── ionoscloud/
│   │   ├── application_load_balancer.go
│   │   ├── application_load_balancer_forwarding_rule.go
│   │   ├── backup_unit.go
│   │   ├── certificate.go
│   │   ├── container_registry.go
│   │   ├── container_registry_token.go
│   │   ├── datacenter.go
│   │   ├── dataplatform_cluster.go
│   │   ├── dataplatform_node_pool.go
│   │   ├── dbaas_mongo_cluster.go
│   │   ├── dbaas_mongo_user.go
│   │   ├── dbaas_pgsql_cluster.go
│   │   ├── dbaas_pgsql_database.go
│   │   ├── dbaas_pgsql_user.go
│   │   ├── dns_record.go
│   │   ├── dns_zone.go
│   │   ├── firewall.go
│   │   ├── group.go
│   │   ├── helpers/
│   │   │   ├── constants.go
│   │   │   └── helper_dependencies_list.go
│   │   ├── ionoscloud_provider.go
│   │   ├── ionoscloud_service.go
│   │   ├── ip_block.go
│   │   ├── ipfailover.go
│   │   ├── kubernetes_cluster.go
│   │   ├── kubernetes_node_pool.go
│   │   ├── lan.go
│   │   ├── load_balancer.go
│   │   ├── logging_pipeline.go
│   │   ├── nat_gateway.go
│   │   ├── nat_gateway_rule.go
│   │   ├── network_load_balancer.go
│   │   ├── network_load_balancer_forwarding_rule.go
│   │   ├── nic.go
│   │   ├── private_crossconnect.go
│   │   ├── s3_key.go
│   │   ├── server.go
│   │   ├── share.go
│   │   ├── target_group.go
│   │   ├── user.go
│   │   └── volume.go
│   ├── keycloak/
│   │   ├── authentication.go
│   │   ├── generator.go
│   │   ├── group.go
│   │   ├── helpers.go
│   │   ├── keycloak_provider.go
│   │   ├── keycloak_service.go
│   │   ├── openid_client.go
│   │   ├── realm.go
│   │   ├── role.go
│   │   ├── scope.go
│   │   └── user.go
│   ├── kubernetes/
│   │   ├── kind.go
│   │   ├── kubernetes_provider.go
│   │   ├── kubernetes_service.go
│   │   └── utils.go
│   ├── launchdarkly/
│   │   ├── feature_flags.go
│   │   ├── launchdarkly_provider.go
│   │   ├── launchdarkly_service.go
│   │   ├── project.go
│   │   └── segment.go
│   ├── linode/
│   │   ├── domain.go
│   │   ├── image.go
│   │   ├── instance.go
│   │   ├── linode_provider.go
│   │   ├── linode_service.go
│   │   ├── nodebalancer.go
│   │   ├── rdns.go
│   │   ├── sshkey.go
│   │   ├── stackscript.go
│   │   ├── token.go
│   │   └── volume.go
│   ├── logzio/
│   │   ├── alert_notification_endpoints.go
│   │   ├── alerts.go
│   │   ├── logzio_provider.go
│   │   └── logzio_service.go
│   ├── mackerel/
│   │   ├── alert_group_setting.go
│   │   ├── aws_integration.go
│   │   ├── channel.go
│   │   ├── downtime.go
│   │   ├── mackerel_provider.go
│   │   ├── mackerel_service.go
│   │   ├── monitor.go
│   │   ├── notification_group.go
│   │   ├── role.go
│   │   └── service.go
│   ├── mikrotik/
│   │   ├── dhcp_leases.go
│   │   ├── mikrotik_provider.go
│   │   └── mikrotik_service.go
│   ├── myrasec/
│   │   ├── cache_setting.go
│   │   ├── dns_record.go
│   │   ├── domain.go
│   │   ├── error_page.go
│   │   ├── ip_filter.go
│   │   ├── maintenance.go
│   │   ├── myrasec_provider.go
│   │   ├── myrasec_service.go
│   │   ├── ratelimit.go
│   │   ├── redirect.go
│   │   ├── settings.go
│   │   └── waf_rule.go
│   ├── newrelic/
│   │   ├── alert.go
│   │   ├── alertchannel.go
│   │   ├── alertcondition.go
│   │   ├── alertpolicy.go
│   │   ├── helpers.go
│   │   ├── infra.go
│   │   ├── newrelic_provider.go
│   │   ├── newrelic_service.go
│   │   ├── synthetics.go
│   │   └── tags.go
│   ├── ns1/
│   │   ├── monitoringjob.go
│   │   ├── ns1_provider.go
│   │   ├── ns1_service.go
│   │   ├── team.go
│   │   └── zone.go
│   ├── octopusdeploy/
│   │   ├── generic_resources.go
│   │   ├── octopusdeploy_provider.go
│   │   └── octopusdeploy_service.go
│   ├── okta/
│   │   ├── app.go
│   │   ├── app_auto_login.go
│   │   ├── app_basic_auth.go
│   │   ├── app_bookmark.go
│   │   ├── app_oauth.go
│   │   ├── app_saml.go
│   │   ├── app_secure_password_store.go
│   │   ├── app_signon_policy.go
│   │   ├── app_signon_policy_rule.go
│   │   ├── app_swa.go
│   │   ├── app_three_field.go
│   │   ├── app_user_schema.go
│   │   ├── authenticator.go
│   │   ├── authorization_server.go
│   │   ├── authorization_server_claim.go
│   │   ├── authorization_server_policy.go
│   │   ├── authorization_server_policy_rule.go
│   │   ├── authorization_server_scope.go
│   │   ├── event_hook.go
│   │   ├── factor.go
│   │   ├── group.go
│   │   ├── group_rule.go
│   │   ├── helpers.go
│   │   ├── idp_oidc.go
│   │   ├── idp_saml.go
│   │   ├── idp_social.go
│   │   ├── inline_hook.go
│   │   ├── network_zone.go
│   │   ├── okta_provider.go
│   │   ├── okta_service.go
│   │   ├── policy_mfa.go
│   │   ├── policy_password.go
│   │   ├── policy_rule_mfa.go
│   │   ├── policy_rule_password.go
│   │   ├── policy_rule_signon.go
│   │   ├── policy_signon.go
│   │   ├── template_sms.go
│   │   ├── trusted_origin.go
│   │   ├── user.go
│   │   ├── user_schema.go
│   │   └── user_type.go
│   ├── opal/
│   │   ├── group.go
│   │   ├── helpers.go
│   │   ├── message_channel.go
│   │   ├── on_call_schedule.go
│   │   ├── opal_provider.go
│   │   ├── opal_service.go
│   │   ├── owner.go
│   │   └── resource.go
│   ├── openstack/
│   │   ├── blockstorage.go
│   │   ├── compute.go
│   │   ├── networking.go
│   │   ├── openstack_provider.go
│   │   └── openstack_service.go
│   ├── opsgenie/
│   │   ├── opsgenie_provider.go
│   │   ├── opsgenie_service.go
│   │   ├── service.go
│   │   ├── team.go
│   │   └── user.go
│   ├── pagerduty/
│   │   ├── business_service.go
│   │   ├── escalation_policy.go
│   │   ├── pagerduty_provider.go
│   │   ├── pagerduty_service.go
│   │   ├── ruleset.go
│   │   ├── schedule.go
│   │   ├── service.go
│   │   ├── team.go
│   │   └── user.go
│   ├── panos/
│   │   ├── firewall_device_config.go
│   │   ├── firewall_networking.go
│   │   ├── firewall_objects.go
│   │   ├── firewall_policy.go
│   │   ├── helpers.go
│   │   ├── panorama_device_config.go
│   │   ├── panorama_networking.go
│   │   ├── panorama_objects.go
│   │   ├── panorama_plugins.go
│   │   ├── panorama_policy.go
│   │   ├── panos_provider.go
│   │   └── panos_service.go
│   ├── rabbitmq/
│   │   ├── binding.go
│   │   ├── exchange.go
│   │   ├── helpers.go
│   │   ├── permissions.go
│   │   ├── policy.go
│   │   ├── queue.go
│   │   ├── rabbitmq_provider.go
│   │   ├── rabbitmq_service.go
│   │   ├── shovel.go
│   │   ├── user.go
│   │   └── vhost.go
│   ├── tencentcloud/
│   │   ├── acl.go
│   │   ├── as.go
│   │   ├── cbs.go
│   │   ├── cdn.go
│   │   ├── cfs.go
│   │   ├── clb.go
│   │   ├── cos.go
│   │   ├── cvm.go
│   │   ├── dnspod.go
│   │   ├── eip.go
│   │   ├── elasticsearch.go
│   │   ├── gaap.go
│   │   ├── key_pair.go
│   │   ├── mongodb.go
│   │   ├── mysql.go
│   │   ├── nat_gateway.go
│   │   ├── pts.go
│   │   ├── redis.go
│   │   ├── route_table.go
│   │   ├── scf.go
│   │   ├── security_group.go
│   │   ├── ses.go
│   │   ├── ssl.go
│   │   ├── subnet.go
│   │   ├── tat.go
│   │   ├── tcaplus.go
│   │   ├── tencentcloud_helpers.go
│   │   ├── tencentcloud_provider.go
│   │   ├── tencentcloud_service.go
│   │   ├── vpc.go
│   │   └── vpn.go
│   ├── vault/
│   │   ├── vault_provider.go
│   │   └── vault_service_generator.go
│   ├── vultr/
│   │   ├── bare_metal_server.go
│   │   ├── block_storage.go
│   │   ├── dns_domain.go
│   │   ├── firewall_group.go
│   │   ├── network.go
│   │   ├── reserved_ip.go
│   │   ├── server.go
│   │   ├── snapshot.go
│   │   ├── ssh_key.go
│   │   ├── startup_script.go
│   │   ├── user.go
│   │   ├── vultr_provider.go
│   │   └── vultr_service.go
│   ├── xenorchestra/
│   │   ├── acls.go
│   │   ├── resource_sets.go
│   │   ├── xenorchestra_provider.go
│   │   └── xenorchestra_service.go
│   └── yandex/
│       ├── compute_disk.go
│       ├── compute_instance.go
│       ├── util.go
│       ├── vpc_network.go
│       ├── vpc_subnet.go
│       ├── yandex_provider.go
│       └── yandex_service.go
├── snap/
│   └── snapcraft.yaml
├── terraformutils/
│   ├── base_provider.go
│   ├── connect.go
│   ├── connect_test.go
│   ├── flatmap.go
│   ├── flatmap_test.go
│   ├── hcl.go
│   ├── hcl_test.go
│   ├── json.go
│   ├── providers_mapping.go
│   ├── providerwrapper/
│   │   ├── provider.go
│   │   └── provider_test.go
│   ├── resource.go
│   ├── service.go
│   ├── service_test.go
│   ├── terraformoutput/
│   │   ├── bucket.go
│   │   └── hcl.go
│   ├── test_data/
│   │   ├── test1.json
│   │   ├── test2.json
│   │   ├── test3.json
│   │   ├── test4.json
│   │   ├── test5.json
│   │   ├── test6.json
│   │   ├── test7.json
│   │   ├── test8.json
│   │   └── test9.json
│   ├── tfstate_converter_test.go
│   ├── utils.go
│   ├── walk.go
│   └── walk_test.go
└── tests/
    ├── aws/
    │   └── main.go
    ├── commercetools/
    │   └── main.go
    ├── datadog/
    │   ├── README.md
    │   ├── helper.go
    │   ├── main.go
    │   └── resources/
    │       ├── dashboard.tf
    │       ├── downtime.tf
    │       ├── monitor.tf
    │       ├── outputs.tf
    │       ├── synthetics.tf
    │       └── user.tf
    ├── gcp/
    │   └── main.go
    ├── github/
    │   └── main.go
    ├── octopusdeploy/
    │   ├── README.md
    │   ├── channel.tf
    │   ├── environment.tf
    │   ├── feed.tf
    │   ├── library_variable_set.tf
    │   ├── lifecycle.tf
    │   ├── main.tf
    │   ├── project.tf
    │   ├── project_group.tf
    │   ├── provider.tf
    │   └── tagset.tf
    ├── openstack/
    │   └── main.go
    └── rabbitmq/
        └── main.go

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/dependabot.yml
================================================
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
  - package-ecosystem: "gomod"
    directory: "/"
    schedule:
      interval: "weekly"

  # Maintain dependencies for GitHub Actions
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "weekly"


================================================
FILE: .github/workflows/linter.yml
================================================
name: linter

on:
  push:
    branches:
    - master
  pull_request:
    branches:
    - master

jobs:
  linter:
    name: golangci-lint
    runs-on: ubuntu-latest
    steps:
    - name: Check out code into the Go module directory
      uses: actions/checkout@v4
    - name: golangci-lint
      uses: reviewdog/action-golangci-lint@v2
      with:
        go_version_file: go.mod
        github_token: ${{ secrets.GITHUB_TOKEN }}
        tool_name: golangci-lint


================================================
FILE: .github/workflows/release.yaml
================================================
name: "tagged-release"
on:
  workflow_dispatch:
    inputs:
      version:
        description: Bump Version
        required: true
jobs:
  tagged-release:
    name: "Tagged Release"
    runs-on: "ubuntu-latest"

    steps:
      - uses: actions/checkout@v4
      - name: Install Go
        uses: actions/setup-go@v5
        with:
          go-version-file: go.mod
          cache: true
      - name: Test
        run: go build -v && go test ./...
      - name: Build for linux/amd64
        run: go build -o terraformer-all-linux-amd64
      - name: Build for linux/arm64
        run: GOOS=linux GOARCH=arm64 go build -o terraformer-all-linux-arm64
      - name: Build for mac
        run: GOOS=darwin go build -o terraformer-all-darwin-amd64
      - name: Build for mac Apple Silicon
        run: GOOS=darwin GOARCH=arm64 go build -o terraformer-all-darwin-arm64
      - name: Build for all providers
        run: go run build/multi-build/main.go

      - uses: "marvinpinto/action-automatic-releases@latest"
        with:
          repo_token: "${{ secrets.GITHUB_TOKEN }}"
          automatic_release_tag: ${{ github.event.inputs.version }}
          prerelease: false
          files: |
            terraformer-*


================================================
FILE: .github/workflows/stale.yaml
================================================
name: 'Close stale issues and PRs'
on:
  schedule:
    - cron: '30 1 * * *'

jobs:
  stale:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/stale@v9
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}
          stale-issue-message: 'This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days.'
          close-issue-message: 'This issue was closed because it has been stalled for 7 days with no activity.'
          days-before-issue-stale: 60
          days-before-issue-close: 7
          days-before-pr-close: -1

================================================
FILE: .github/workflows/test.yml
================================================
name: tests

on:
  push:
    branches:
    - master
  pull_request:
    branches:
    - master

jobs:
  test:
    strategy:
      matrix:
        platform: [ubuntu-latest, macos-latest]
    runs-on: ${{ matrix.platform }}
    steps:
    - uses: actions/checkout@v4
    - name: Install Go
      uses: actions/setup-go@v5
      with:
        go-version-file: go.mod
        cache: true
    - name: Go Mod Tidy
      run: go mod tidy
    - name: Test
      run: go build -v && go test ./...


================================================
FILE: .gitignore
================================================
.idea
generated
terraformer*
cmd/tmp
.DS_Store
.terraform
.vscode
terraform.tfstate
terraform.tfstate.backup
init.tf
vendor/

================================================
FILE: .golangci.json
================================================
{
  "formatters": {
    "enable": [
      "gofmt",
      "goimports"
    ],
    "exclusions": {
      "generated": "lax",
      "paths": [
        "third_party$",
        "builtin$",
        "examples$"
      ]
    }
  },
  "issues": {
    "max-issues-per-linter": 0,
    "max-same-issues": 0
  },
  "linters": {
    "enable": [
      "gocritic",
      "revive",
      "unconvert",
      "unparam"
    ],
    "exclusions": {
      "generated": "lax",
      "paths": [
        "third_party$",
        "builtin$",
        "examples$"
      ],
      "presets": [
        "comments",
        "common-false-positives",
        "legacy",
        "std-error-handling"
      ]
    }
  },
  "run": {
    "concurrency": 8,
    "issues-exit-code": 1,
    "modules-download-mode": "readonly"
  },
  "version": "2"
}


================================================
FILE: AUTHORS
================================================
# This is the list of Terraformer authors for copyright purposes.
#
# This does not necessarily list everyone who has contributed code, since in
# some cases, their employer may be the copyright holder.  To see the full list
# of contributors, see the revision history in source control.
Sergey Lanzman

================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at jaq@google.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

================================================
FILE: CONTRIBUTING.md
================================================
# How to Contribute

We'd love to accept your patches and contributions to this project. There are
just a few small guidelines you need to follow.

## Contributor License Agreement

Contributions to this project must be accompanied by a Contributor License
Agreement. You (or your employer) retain the copyright to your contribution;
this simply gives us permission to use and redistribute your contributions as
part of the project. Head over to <https://cla.developers.google.com/> to see
your current agreements on file or to sign a new one.

You generally only need to submit a CLA once, so if you've already submitted one
(even if it was for a different project), you probably don't need to do it
again.

## Code reviews

All submissions, including submissions by project members, require review. We
use GitHub pull requests for this purpose. Consult
[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
information on using pull requests.

## Community Guidelines

This project follows
[Google's Open Source Community Guidelines](https://opensource.google.com/conduct/).

================================================
FILE: LICENSE
================================================

                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   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.

================================================
FILE: README.md
================================================
# Terraformer

[![tests](https://github.com/GoogleCloudPlatform/terraformer/actions/workflows/test.yml/badge.svg)](https://github.com/GoogleCloudPlatform/terraformer/actions/workflows/test.yml)
[![linter](https://github.com/GoogleCloudPlatform/terraformer/actions/workflows/linter.yml/badge.svg)](https://github.com/GoogleCloudPlatform/terraformer/actions/workflows/linter.yml)
[![Go Report Card](https://goreportcard.com/badge/github.com/GoogleCloudPlatform/terraformer)](https://goreportcard.com/report/github.com/GoogleCloudPlatform/terraformer)
[![AUR package](https://img.shields.io/aur/version/terraformer)](https://aur.archlinux.org/packages/terraformer/)
[![Homebrew](https://img.shields.io/badge/dynamic/json.svg?url=https://formulae.brew.sh/api/formula/terraformer.json&query=$.versions.stable&label=homebrew)](https://formulae.brew.sh/formula/terraformer)

**This project is no longer maintained and is deprecated.**

As of March 16, 2026, this repository has been archived. It is now read-only, and no further updates, security patches, or support will be provided.

A CLI tool that generates `tf`/`json` and `tfstate` files based on existing infrastructure
(reverse Terraform).

*   Disclaimer: This is not an official Google product
*   Created by: Waze SRE

![Waze SRE logo](assets/waze-sre-logo.png)

# Table of Contents
- [Demo GCP](#demo-gcp)
- [Capabilities](#capabilities)
- [Installation](#installation)
- [Supported Providers](/docs)
    * Major Cloud
        * [Google Cloud](/docs/gcp.md)
        * [AWS](/docs/aws.md)
        * [Azure](/docs/azure.md)
        * [AliCloud](/docs/alicloud.md)
        * [IBM Cloud](/docs/ibmcloud.md)
    * Cloud
        * [DigitalOcean](/docs/digitalocean.md)
        * [Equinix Metal](/docs/equinixmetal.md)
        * [Fastly](/docs/fastly.md)
        * [Heroku](/docs/heroku.md)
        * [LaunchDarkly](/docs/launchdarkly.md)
        * [Linode](/docs/linode.md)
        * [NS1](/docs/ns1.md)
        * [OpenStack](/docs/openstack.md)
        * [TencentCloud](/docs/tencentcloud.md)
        * [Vultr](/docs/vultr.md)
        * [Yandex Cloud](/docs/yandex.md)
        * [Ionos Cloud](/docs/ionoscloud.md)
    * Infrastructure Software
        * [Kubernetes](/docs/kubernetes.md)
        * [OctopusDeploy](/docs/octopus.md)
        * [RabbitMQ](/docs/rabbitmq.md)
    * Network
        * [Cloudflare](/docs/cloudflare.md) (broken, see #1761)
        * [Myrasec](/docs/myrasec.md)
        * [PAN-OS](/docs/panos.md)
    * VCS
        * [Azure DevOps](/docs/azuredevops.md)
        * [GitHub](/docs/github.md)
        * [Gitlab](/docs/gitlab.md)
    * Monitoring & System Management
        * [Datadog](/docs/datadog.md)
        * [New Relic](/docs/relic.md)
        * [Mackerel](/docs/mackerel.md)
        * [PagerDuty](/docs/pagerduty.md)
        * [Opsgenie](/docs/opsgenie.md)
        * [Honeycomb.io](/docs/honeycombio.md)
        * [Opal](/docs/opal.md)
    * Community
        * [Keycloak](/docs/keycloak.md)
        * [Logz.io](/docs/logz.md)
        * [Commercetools](/docs/commercetools.md)
        * [Mikrotik](/docs/mikrotik.md)
        * [Xen Orchestra](/docs/xen.md)
        * [GmailFilter](/docs/gmailfilter.md)
        * [Grafana](/docs/grafana.md)
        * [Vault](/docs/vault.md)
    * Identity
        * [Okta](/docs/okta.md)
        * [Auth0](/docs/auth0.md)
        * [AzureAD](/docs/azuread.md)
- [Contributing](#contributing)
- [Developing](#developing)
- [Infrastructure](#infrastructure)
- [Stargazers over time](#stargazers-over-time)

## Demo GCP
[![asciicast](https://asciinema.org/a/243961.svg)](https://asciinema.org/a/243961)

## Capabilities

1.  Generate `tf`/`json` + `tfstate` files from existing infrastructure for all
    supported objects by resource.
2.  Remote state can be uploaded to a GCS bucket.
3.  Connect between resources with `terraform_remote_state` (local and bucket).
4.  Save `tf`/`json` files using a custom folder tree pattern.
5.  Import by resource name and type.
6.  Support terraform 0.13 (for terraform 0.11 use v0.7.9).

Terraformer uses Terraform providers and is designed to easily support newly added resources.
To upgrade resources with new fields, all you need to do is upgrade the relevant Terraform providers.
```
Import current state to Terraform configuration from a provider

Usage:
   import [provider] [flags]
   import [provider] [command]

Available Commands:
  list        List supported resources for a provider

Flags:
  -b, --bucket string         gs://terraform-state
  -c, --connect                (default true)
  -С, --compact                (default false)
  -x, --excludes strings      firewalls,networks
  -f, --filter strings        compute_firewall=id1:id2:id4
  -h, --help                  help for google
  -O, --output string         output format hcl or json (default "hcl")
  -o, --path-output string     (default "generated")
  -p, --path-pattern string   {output}/{provider}/ (default "{output}/{provider}/{service}/")
      --projects strings
  -z, --regions strings       europe-west1, (default [global])
  -r, --resources strings     firewall,networks or * for all services
  -s, --state string          local or bucket (default "local")
  -v, --verbose               verbose mode
  -n, --retry-number          number of retries to perform if refresh fails
  -m, --retry-sleep-ms        time in ms to sleep between retries

Use " import [provider] [command] --help" for more information about a command.
```
#### Permissions

The tool requires read-only permissions to list service resources.

#### Resources

You can use `--resources` parameter to tell resources from what service you want to import.

To import resources from all services, use `--resources="*"` . If you want to exclude certain services, you can combine the parameter with `--excludes` to exclude resources from services you don't want to import e.g. `--resources="*" --excludes="iam"`.

#### Filtering

Filters are a way to choose which resources `terraformer` imports. It's possible to filter resources by its identifiers or attributes. Multiple filtering values are separated by `:`. If an identifier contains this symbol, value should be wrapped in `'` e.g. `--filter=resource=id1:'project:dataset_id'`. Identifier based filters will be executed before Terraformer will try to refresh remote state.

Use `Type` when you need to filter only one of several types of resources. Multiple filters can be combined when importing different resource types. An example would be importing all AWS security groups from a specific AWS VPC:
```
terraformer import aws -r sg,vpc --filter Type=sg;Name=vpc_id;Value=VPC_ID --filter Type=vpc;Name=id;Value=VPC_ID
```
Notice how the `Name` is different for `sg` than it is for `vpc`.

##### Migration state version
For terraform >= 0.13, you can use `replace-provider` to migrate state from previous versions.

Example usage:
```
terraform state replace-provider -auto-approve "registry.terraform.io/-/aws" "hashicorp/aws"
```

##### Resource ID

Filtering is based on Terraform resource ID patterns. To find valid ID patterns for your resource, check the import part of the [Terraform documentation][terraform-providers].

[terraform-providers]: https://www.terraform.io/docs/providers/

Example usage:

```
terraformer import aws --resources=vpc,subnet --filter=vpc=myvpcid --regions=eu-west-1
```
Will only import the vpc with id `myvpcid`. This form of filters can help when it's necessary to select resources by its identifiers.

##### Field name only

It is possible to filter by specific field name only. It can be used e.g. when you want to retrieve resources only with a specific tag key.

Example usage:

```
terraformer import aws --resources=s3 --filter="Name=tags.Abc" --regions=eu-west-1
```
Will only import the s3 resources that have tag `Abc`. This form of filters can help when the field values are not important from filtering perspective.

##### Field with dots

It is possible to filter by a field that contains a dot.

Example usage:

```
terraformer import aws --resources=s3 --filter="Name=tags.Abc.def" --regions=eu-west-1
```
Will only import the s3 resources that have tag `Abc.def`.

#### Planning

The `plan` command generates a planfile that contains all the resources set to be imported. By modifying the planfile before running the `import` command, you can rename or filter the resources you'd like to import.

The rest of subcommands and parameters are identical to the `import` command.

```
$ terraformer plan google --resources=networks,firewall --projects=my-project --regions=europe-west1-d
(snip)

Saving planfile to generated/google/my-project/terraformer/plan.json
```

After reviewing/customizing the planfile, begin the import by running `import plan`.

```
$ terraformer import plan generated/google/my-project/terraformer/plan.json
```

### Resource structure

Terraformer by default separates each resource into a file, which is put into a given service directory.

The default path for resource files is `{output}/{provider}/{service}/{resource}.tf` and can vary for each provider.

It's possible to adjust the generated structure by:
1. Using `--compact` parameter to group resource files within a single service into one `resources.tf` file
2. Adjusting the `--path-pattern` parameter and passing e.g. `--path-pattern {output}/{provider}/` to generate resources for all services in one directory

It's possible to combine `--compact` `--path-pattern` parameters together.

### Installation

Both Terraformer and a Terraform provider plugin need to be installed.

#### Terraformer

**From a package manager**
- [Homebrew](https://brew.sh/) users can use `brew install terraformer`.
- [MacPorts](https://www.macports.org/) users can use `sudo port install terraformer`.
- [Chocolatey](https://chocolatey.org/) users can use `choco install terraformer`.

**From releases**
This installs all providers, set `PROVIDER` to one of `google`, `aws` or `kubernetes` if you only need one.

* Linux
```
export PROVIDER=all
curl -LO "https://github.com/GoogleCloudPlatform/terraformer/releases/download/$(curl -s https://api.github.com/repos/GoogleCloudPlatform/terraformer/releases/latest | grep tag_name | cut -d '"' -f 4)/terraformer-${PROVIDER}-linux-amd64"
chmod +x terraformer-${PROVIDER}-linux-amd64
sudo mv terraformer-${PROVIDER}-linux-amd64 /usr/local/bin/terraformer
```
* MacOS
```
export PROVIDER=all
curl -LO "https://github.com/GoogleCloudPlatform/terraformer/releases/download/$(curl -s https://api.github.com/repos/GoogleCloudPlatform/terraformer/releases/latest | grep tag_name | cut -d '"' -f 4)/terraformer-${PROVIDER}-darwin-amd64"
chmod +x terraformer-${PROVIDER}-darwin-amd64
sudo mv terraformer-${PROVIDER}-darwin-amd64 /usr/local/bin/terraformer
```
* Windows
1. Install Terraform - https://www.terraform.io/downloads
2. Download exe file for required provider from here - https://github.com/GoogleCloudPlatform/terraformer/releases
3. Add the exe file path to path variable

**From source**
1.  Run `git clone <terraformer repo> && cd terraformer/`
2.  Run `go mod download`
3.  Run `go build -v` for all providers OR build with one provider
`go run build/main.go {google,aws,azure,kubernetes,etc}`

#### Terraform Providers

Create a working folder and initialize the Terraform provider plugin.  This folder will be where you run Terraformer commands.

Run ```terraform init``` against a ```versions.tf``` file to install the plugins required for your platform. For example, if you need plugins for the google provider, ```versions.tf``` should contain:
```
terraform {
  required_providers {
    google = {
      source = "hashicorp/google"
    }
  }
  required_version = ">= 0.13"
}
```

Or, copy your Terraform provider's plugin(s) from the list below to folder `~/.terraform.d/plugins/`, as appropriate.

Links to download Terraform provider plugins:
* Major Cloud
    * Google Cloud provider >2.11.0 - [here](https://releases.hashicorp.com/terraform-provider-google/)
    * AWS provider >2.25.0 - [here](https://releases.hashicorp.com/terraform-provider-aws/)
    * Azure provider >1.35.0 - [here](https://releases.hashicorp.com/terraform-provider-azurerm/)
    * Alicloud provider >1.57.1 - [here](https://releases.hashicorp.com/terraform-provider-alicloud/)
* Cloud
    * DigitalOcean provider >1.9.1 - [here](https://releases.hashicorp.com/terraform-provider-digitalocean/)
    * Heroku provider >2.2.1 - [here](https://releases.hashicorp.com/terraform-provider-heroku/)
    * LaunchDarkly provider >=2.1.1 - [here](https://releases.hashicorp.com/terraform-provider-launchdarkly/)
    * Linode provider >1.8.0 - [here](https://releases.hashicorp.com/terraform-provider-linode/)
    * OpenStack provider >1.21.1 - [here](https://releases.hashicorp.com/terraform-provider-openstack/)
    * TencentCloud provider >1.50.0 - [here](https://releases.hashicorp.com/terraform-provider-tencentcloud/)
    * Vultr provider >1.0.5 - [here](https://releases.hashicorp.com/terraform-provider-vultr/)
    * Yandex provider >0.42.0 - [here](https://releases.hashicorp.com/terraform-provider-yandex/)
    * Ionoscloud provider >6.3.3 - [here](https://github.com/ionos-cloud/terraform-provider-ionoscloud/releases)
* Infrastructure Software
    * Kubernetes provider >=1.9.0 - [here](https://releases.hashicorp.com/terraform-provider-kubernetes/)
    * RabbitMQ provider >=1.1.0 - [here](https://releases.hashicorp.com/terraform-provider-rabbitmq/)
* Network
    * Myrasec provider >1.44 - [here](https://github.com/Myra-Security-GmbH/terraform-provider-myrasec)
    * Cloudflare provider >1.16 - [here](https://releases.hashicorp.com/terraform-provider-cloudflare/)
    * Fastly provider >0.16.1 - [here](https://releases.hashicorp.com/terraform-provider-fastly/)
    * NS1 provider >1.8.3 - [here](https://releases.hashicorp.com/terraform-provider-ns1/)
    * PAN-OS provider >= 1.8.3 - [here](https://github.com/PaloAltoNetworks/terraform-provider-panos)
* VCS
    * GitHub provider >=2.2.1 - [here](https://releases.hashicorp.com/terraform-provider-github/)
* Monitoring & System Management
    * Datadog provider >2.1.0 - [here](https://releases.hashicorp.com/terraform-provider-datadog/)
    * New Relic provider >2.0.0 - [here](https://releases.hashicorp.com/terraform-provider-newrelic/)
    * Mackerel provider > 0.0.6 - [here](https://github.com/mackerelio-labs/terraform-provider-mackerel)
    * Pagerduty >=1.9 - [here](https://releases.hashicorp.com/terraform-provider-pagerduty/)
    * Opsgenie >= 0.6.0 [here](https://releases.hashicorp.com/terraform-provider-opsgenie/)
    * Honeycomb.io >= 0.10.0 - [here](https://github.com/honeycombio/terraform-provider-honeycombio/releases)
    * Opal >= 0.0.2 - [here](https://github.com/opalsecurity/terraform-provider-opal/releases)
* Community
    * Keycloak provider >=1.19.0 - [here](https://github.com/mrparkers/terraform-provider-keycloak/)
    * Logz.io provider >=1.1.1 - [here](https://github.com/jonboydell/logzio_terraform_provider/)
    * Commercetools provider >= 0.21.0 - [here](https://github.com/labd/terraform-provider-commercetools)
    * Mikrotik provider >= 0.2.2 - [here](https://github.com/ddelnano/terraform-provider-mikrotik)
    * Xen Orchestra provider >= 0.18.0 - [here](https://github.com/ddelnano/terraform-provider-xenorchestra)
    * GmailFilter provider >= 1.0.1 - [here](https://github.com/yamamoto-febc/terraform-provider-gmailfilter)
    * Vault provider - [here](https://github.com/hashicorp/terraform-provider-vault)
    * Auth0 provider - [here](https://github.com/alexkappa/terraform-provider-auth0)
    * AzureAD provider - [here](https://github.com/hashicorp/terraform-provider-azuread)

Information on provider plugins:
https://www.terraform.io/docs/configuration/providers.html


## High-Level steps to add new provider
 * Initialize provider details in cmd/root.go and create a provider initialization file in the terraformer/cmd folder
 * Create a folder under terraformer/providers/ for your provider
 * Create two files under this folder
   * <provide_name>_provider.go
   * <provide_name>_service.go
* Initialize all provider's supported services in <provide_name>_provider.go file
* Create script for each supported service in same folder

## Contributing

If you have improvements or fixes, we would love to have your contributions.
Please read [CONTRIBUTING.md](./CONTRIBUTING.md) for more information on the process we would like
contributors to follow.

## Developing

Terraformer was built so you can easily add new providers of any kind.

Process for generating `tf`/`json` + `tfstate` files:

1.  Call GCP/AWS/other api and get list of resources.
2.  Iterate over resources and take only the ID (we don't need mapping fields!).
3.  Call to provider for readonly fields.
4.  Call to infrastructure and take tf + tfstate.

## Infrastructure

1.  Call to provider using the refresh method and get all data.
2.  Convert refresh data to go struct.
3.  Generate HCL file - `tf`/`json` files.
4.  Generate `tfstate` files.

All mapping of resource is made by providers and Terraform. Upgrades are needed only
for providers.

##### GCP compute resources

For GCP compute resources, use generated code from
`providers/gcp/gcp_compute_code_generator`.

To regenerate code:

```
go run providers/gcp/gcp_compute_code_generator/*.go
```

### Similar projects

#### [terraforming](https://github.com/dtan4/terraforming)

##### Terraformer Benefits

* Simpler to add new providers and resources - already supports AWS, GCP, GitHub, Kubernetes, and Openstack. Terraforming supports only AWS.
* Better support for HCL + tfstate, including updates for Terraform 0.12.
* If a provider adds new attributes to a resource, there is no need change Terraformer code - just update the Terraform provider on your laptop.
* Automatically supports connections between resources in HCL files.

##### Comparison

Terraforming gets all attributes from cloud APIs and creates HCL and tfstate files with templating. Each attribute in the API needs to map to attribute in Terraform. Generated files from templating can be broken with illegal syntax. When a provider adds new attributes the terraforming code needs to be updated.

Terraformer instead uses Terraform provider files for mapping attributes, HCL library from Hashicorp, and Terraform code.

Look for S3 support in terraforming here and official S3 support
Terraforming lacks full coverage for resources - as an example you can see that 70% of S3 options are not supported:

* terraforming - https://github.com/dtan4/terraforming/blob/master/lib/terraforming/template/tf/s3.erb
* official S3 support - https://www.terraform.io/docs/providers/aws/r/s3_bucket

## Stargazers over time

[![Stargazers over time](https://starchart.cc/GoogleCloudPlatform/terraformer.svg)](https://starchart.cc/GoogleCloudPlatform/terraformer)


================================================
FILE: SECURITY.md
================================================
To report a security issue, please use http://g.co/vulnz. We use
http://g.co/vulnz for our intake, and do coordination and disclosure here on
GitHub (including using GitHub Security Advisory). The Google Security Team will
respond within 5 working days of your report on g.co/vulnz.


================================================
FILE: build/main.go
================================================
package main

import (
	"bytes"
	"fmt"
	"log"
	"os"
	"os/exec"
	"strings"
)

const filePrefix = "provider_cmd_"
const fileSuffix = ".go"
const packageCmdPath = "cmd"

func main() {
	provider := os.Args[1]
	log.Println("Build terraformer with " + provider + " provider...")
	files, err := os.ReadDir(packageCmdPath)
	if err != nil {
		log.Println(err)
	}
	deletedProvider := []string{}
	for _, f := range files {
		if strings.HasPrefix(f.Name(), filePrefix) {
			if !strings.HasPrefix(f.Name(), filePrefix+provider+fileSuffix) {
				providerName := strings.ReplaceAll(f.Name(), filePrefix, "")
				providerName = strings.ReplaceAll(providerName, fileSuffix, "")
				deletedProvider = append(deletedProvider, providerName)
			}
		}
	}
	// move files for deleted providers
	err = os.MkdirAll(packageCmdPath+"/tmp", os.ModePerm)
	if err != nil {
		log.Println(err)
	}
	for _, provider := range deletedProvider {
		err := os.Rename(packageCmdPath+"/"+filePrefix+provider+fileSuffix, packageCmdPath+"/tmp/"+filePrefix+provider+fileSuffix)
		if err != nil {
			log.Println(err)
		}
	}

	// comment deleted providers in code
	rootCode, err := os.ReadFile(packageCmdPath + "/root.go")
	if err != nil {
		log.Println(err)
	}
	lines := strings.Split(string(rootCode), "\n")
	newRootCodeLines := make([]string, len(lines))
	for i, line := range lines {
		for _, provider := range deletedProvider {
			if strings.Contains(strings.ToLower(line), "newcmd"+provider+"importer") {
				line = "// " + line
			}
			if strings.Contains(strings.ToLower(line), "new"+provider+"provider") {
				line = "// " + line
			}
		}
		newRootCodeLines[i] = line
	}
	newRootCode := strings.Join(newRootCodeLines, "\n")
	err = os.WriteFile(packageCmdPath+"/root.go", []byte(newRootCode), os.ModePerm)
	if err != nil {
		log.Println(err)
	}
	// build....
	cmd := exec.Command("go", "build", "-o", "terraformer-"+provider)
	var outb, errb bytes.Buffer
	cmd.Stdout = &outb
	cmd.Stderr = &errb
	err = cmd.Run()
	if err != nil {
		log.Fatal("err:", errb.String())
	}
	fmt.Println(outb.String())

	// revert code and files
	err = os.WriteFile(packageCmdPath+"/root.go", rootCode, os.ModePerm)
	if err != nil {
		log.Println(err)
	}
	for _, provider := range deletedProvider {
		err := os.Rename(packageCmdPath+"/tmp/"+filePrefix+provider+fileSuffix, "cmd/"+filePrefix+provider+fileSuffix)
		if err != nil {
			log.Println(err)
		}
	}
}


================================================
FILE: build/multi-build/main.go
================================================
package main

import (
	"bytes"
	"fmt"
	"log"
	"os"
	"os/exec"
	"strings"
)

const filePrefix = "provider_cmd_"
const fileSuffix = ".go"
const packageCmdPath = "cmd"

func main() {
	// provider := os.Args[1]
	allProviders := []string{}
	files, err := os.ReadDir(packageCmdPath)
	if err != nil {
		log.Println(err)
	}
	for _, f := range files {
		if strings.HasPrefix(f.Name(), filePrefix) {
			providerName := strings.ReplaceAll(f.Name(), filePrefix, "")
			providerName = strings.ReplaceAll(providerName, fileSuffix, "")
			allProviders = append(allProviders, providerName)
		}
	}
	for _, arch := range []string{"amd64", "arm64"} {
		for _, OS := range []string{"linux", "windows", "mac"} {
			for _, provider := range allProviders {
				GOOS := ""
				binaryName := ""
				switch OS {
				case "linux":
					GOOS = "linux"
					binaryName = "terraformer-" + provider + "-linux-" + arch
				case "windows":
					GOOS = "windows"
					binaryName = "terraformer-" + provider + "-windows-" + arch + ".exe"
				case "mac":
					GOOS = "darwin"
					binaryName = "terraformer-" + provider + "-darwin-" + arch
				}
				log.Println("Build terraformer with "+provider+" provider...", "GOOS=", GOOS, " for GOARCH=", arch)
				deletedProvider := []string{}
				for _, f := range files {
					if strings.HasPrefix(f.Name(), filePrefix) {
						if !strings.HasPrefix(f.Name(), filePrefix+provider+fileSuffix) {
							providerName := strings.ReplaceAll(f.Name(), filePrefix, "")
							providerName = strings.ReplaceAll(providerName, fileSuffix, "")
							deletedProvider = append(deletedProvider, providerName)
						}
					}
				}
				// move files for deleted providers
				err := os.MkdirAll(packageCmdPath+"/tmp", os.ModePerm)
				if err != nil {
					log.Fatal("err:", err)
				}
				for _, provider := range deletedProvider {
					err := os.Rename(packageCmdPath+"/"+filePrefix+provider+fileSuffix, packageCmdPath+"/tmp/"+filePrefix+provider+fileSuffix)
					if err != nil {
						log.Println(err)
					}
				}

				// comment deleted providers in code
				rootCode, err := os.ReadFile(packageCmdPath + "/root.go")
				if err != nil {
					log.Fatal("err:", err)
				}
				lines := strings.Split(string(rootCode), "\n")
				newRootCodeLines := make([]string, len(lines))
				for i, line := range lines {
					for _, provider := range deletedProvider {
						if strings.Contains(strings.ToLower(line), "newcmd"+provider+"importer") {
							line = "// " + line
						}
						if strings.Contains(strings.ToLower(line), "new"+provider+"provider") {
							line = "// " + line
						}
					}
					newRootCodeLines[i] = line
				}
				newRootCode := strings.Join(newRootCodeLines, "\n")
				err = os.WriteFile(packageCmdPath+"/root.go", []byte(newRootCode), os.ModePerm)
				if err != nil {
					log.Fatal("err:", err)
				}

				// build....
				cmd := exec.Command("go", "build", "-v", "-o", binaryName)
				cmd.Env = os.Environ()
				cmd.Env = append(cmd.Env, "GOOS="+GOOS)
				cmd.Env = append(cmd.Env, "GOARCH="+arch)
				var outb, errb bytes.Buffer
				cmd.Stdout = &outb
				cmd.Stderr = &errb
				err = cmd.Run()
				if err != nil {
					log.Fatal("err:", errb.String())
				}
				fmt.Println(outb.String())

				// revert code and files
				err = os.WriteFile(packageCmdPath+"/root.go", rootCode, os.ModePerm)
				if err != nil {
					log.Fatal("err:", err)
				}
				for _, provider := range deletedProvider {
					err := os.Rename(packageCmdPath+"/tmp/"+filePrefix+provider+fileSuffix, "cmd/"+filePrefix+provider+fileSuffix)
					if err != nil {
						log.Println(err)
					}
				}
			}
		}
	}
}


================================================
FILE: cmd/import.go
================================================
// Copyright 2018 The Terraformer 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 cmd

import (
	"fmt"
	"log"
	"os"
	"sort"
	"strings"
	"sync"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils/terraformerstring"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils/providerwrapper"

	"github.com/spf13/pflag"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils/terraformoutput"

	"github.com/spf13/cobra"
)

type ImportOptions struct {
	Resources     []string
	Excludes      []string
	PathPattern   string
	PathOutput    string
	State         string
	Bucket        string
	Profile       string
	Verbose       bool
	Zone          string
	Regions       []string
	Projects      []string
	ResourceGroup string
	Connect       bool
	Compact       bool
	Filter        []string
	Plan          bool `json:"-"`
	Output        string
	NoSort        bool
	RetryCount    int
	RetrySleepMs  int
}

const DefaultPathPattern = "{output}/{provider}/{service}/"
const DefaultPathOutput = "generated"
const DefaultState = "local"

func newImportCmd() *cobra.Command {
	options := ImportOptions{}
	cmd := &cobra.Command{
		Use:           "import",
		Short:         "Import current state to Terraform configuration",
		Long:          "Import current state to Terraform configuration",
		SilenceUsage:  true,
		SilenceErrors: false,
		//Version:       version.String(),
	}

	cmd.AddCommand(newCmdPlanImporter(options))
	cmd.AddCommand(&cobra.Command{
		Use:   "no-sort",
		Short: "Don't sort resources",
		Long:  "Don't sort resources",
	})
	for _, subcommand := range providerImporterSubcommands() {
		providerCommand := subcommand(options)
		_ = providerCommand.MarkPersistentFlagRequired("resources")
		cmd.AddCommand(providerCommand)
	}
	return cmd
}

func Import(provider terraformutils.ProviderGenerator, options ImportOptions, args []string) error {

	providerWrapper, options, err := initOptionsAndWrapper(provider, options, args)
	if err != nil {
		return err
	}
	defer providerWrapper.Kill()
	providerMapping := terraformutils.NewProvidersMapping(provider)

	err = initAllServicesResources(providerMapping, options, args, providerWrapper)
	if err != nil {
		return err
	}

	err = terraformutils.RefreshResourcesByProvider(providerMapping, providerWrapper)
	if err != nil {
		return err
	}

	providerMapping.ConvertTFStates(providerWrapper)
	// change structs with additional data for each resource
	providerMapping.CleanupProviders()

	err = importFromPlan(providerMapping, options, args)

	return err
}

func initOptionsAndWrapper(provider terraformutils.ProviderGenerator, options ImportOptions, args []string) (*providerwrapper.ProviderWrapper, ImportOptions, error) {
	err := provider.Init(args)
	if err != nil {
		return nil, options, err
	}

	if terraformerstring.ContainsString(options.Resources, "*") {
		log.Println("Attempting an import of ALL resources in " + provider.GetName())
		options.Resources = providerServices(provider)
	}

	if len(options.Excludes) > 0 {
		localSlice := []string{}
		for _, r := range options.Resources {
			remove := false
			for _, e := range options.Excludes {
				if r == e {
					remove = true
					log.Println("Excluding resource " + e)
				}
			}
			if !remove {
				localSlice = append(localSlice, r)
			}
		}
		options.Resources = localSlice
	}

	providerWrapper, err := providerwrapper.NewProviderWrapper(provider.GetName(), provider.GetConfig(), options.Verbose, map[string]int{"retryCount": options.RetryCount, "retrySleepMs": options.RetrySleepMs})
	if err != nil {
		return nil, options, err
	}

	return providerWrapper, options, nil
}

func initAllServicesResources(providersMapping *terraformutils.ProvidersMapping, options ImportOptions, args []string, providerWrapper *providerwrapper.ProviderWrapper) error {
	numOfResources := len(options.Resources)
	var wg sync.WaitGroup
	wg.Add(numOfResources)

	var failedServices []string

	for _, service := range options.Resources {
		serviceProvider := providersMapping.AddServiceToProvider(service)
		err := serviceProvider.Init(args)
		if err != nil {
			return err
		}
		err = initServiceResources(service, serviceProvider, options, providerWrapper)
		if err != nil {
			failedServices = append(failedServices, service)
		}
	}

	// remove providers that failed to init their service
	providersMapping.RemoveServices(failedServices)
	providersMapping.ProcessResources(false)

	return nil
}

func importFromPlan(providerMapping *terraformutils.ProvidersMapping, options ImportOptions, args []string) error {
	plan := &ImportPlan{
		Provider:         providerMapping.GetBaseProvider().GetName(),
		Options:          options,
		Args:             args,
		ImportedResource: map[string][]terraformutils.Resource{},
	}

	resourcesByService := providerMapping.GetResourcesByService()
	for service := range resourcesByService {
		plan.ImportedResource[service] = append(plan.ImportedResource[service], resourcesByService[service]...)
	}

	if options.Plan {
		path := Path(options.PathPattern, providerMapping.GetBaseProvider().GetName(), "terraformer", options.PathOutput)
		return ExportPlanFile(plan, path, "plan.json")
	}

	return ImportFromPlan(providerMapping.GetBaseProvider(), plan)
}

func initServiceResources(service string, provider terraformutils.ProviderGenerator,
	options ImportOptions, providerWrapper *providerwrapper.ProviderWrapper) error {
	log.Println(provider.GetName() + " importing... " + service)
	err := provider.InitService(service, options.Verbose)
	if err != nil {
		log.Printf("%s error importing %s, err: %s\n", provider.GetName(), service, err)
		return err
	}
	provider.GetService().ParseFilters(options.Filter)
	err = provider.GetService().InitResources()
	if err != nil {
		log.Printf("%s error initializing resources in service %s, err: %s\n", provider.GetName(), service, err)
		return err
	}

	provider.GetService().PopulateIgnoreKeys(providerWrapper)
	provider.GetService().InitialCleanup()
	log.Println(provider.GetName() + " done importing " + service)

	return nil
}

func ImportFromPlan(provider terraformutils.ProviderGenerator, plan *ImportPlan) error {
	options := plan.Options
	importedResource := plan.ImportedResource
	isServicePath := strings.Contains(options.PathPattern, "{service}")

	if options.Connect {
		log.Println(provider.GetName() + " Connecting.... ")
		importedResource = terraformutils.ConnectServices(importedResource, isServicePath, provider.GetResourceConnections())
	}

	if !isServicePath {
		var compactedResources []terraformutils.Resource
		for _, resources := range importedResource {
			compactedResources = append(compactedResources, resources...)
		}
		e := printService(provider, "", options, compactedResources, importedResource)
		if e != nil {
			return e
		}
	} else {
		for serviceName, resources := range importedResource {
			e := printService(provider, serviceName, options, resources, importedResource)
			if e != nil {
				return e
			}
		}
	}
	return nil
}

func printService(provider terraformutils.ProviderGenerator, serviceName string, options ImportOptions, resources []terraformutils.Resource, importedResource map[string][]terraformutils.Resource) error {
	log.Println(provider.GetName() + " save " + serviceName)
	// Print HCL files for Resources
	path := Path(options.PathPattern, provider.GetName(), serviceName, options.PathOutput)
	err := terraformoutput.OutputHclFiles(resources, provider, path, serviceName, options.Compact, options.Output, !options.NoSort)
	if err != nil {
		return err
	}
	tfStateFile, err := terraformutils.PrintTfState(resources)
	if err != nil {
		return err
	}
	// print or upload State file
	if options.State == "bucket" {
		log.Println(provider.GetName() + " upload tfstate to  bucket " + options.Bucket)
		bucket := terraformoutput.BucketState{
			Name: options.Bucket,
		}
		if err := bucket.BucketUpload(path, tfStateFile); err != nil {
			return err
		}
		// create Bucket file
		if bucketStateDataFile, err := terraformutils.Print(bucket.BucketGetTfData(path), map[string]struct{}{}, options.Output, !options.NoSort); err == nil {
			terraformoutput.PrintFile(path+"/bucket.tf", bucketStateDataFile)
		}
	} else {
		if serviceName == "" {
			log.Println(provider.GetName() + " save tfstate")
		} else {
			log.Println(provider.GetName() + " save tfstate for " + serviceName)
		}
		if err := os.WriteFile(path+"/terraform.tfstate", tfStateFile, os.ModePerm); err != nil {
			return err
		}
	}
	// Print hcl variables.tf
	if serviceName != "" {
		if options.Connect && len(provider.GetResourceConnections()[serviceName]) > 0 {
			variables := map[string]map[string]map[string]interface{}{}
			variables["data"] = map[string]map[string]interface{}{}
			variables["data"]["terraform_remote_state"] = map[string]interface{}{}
			if options.State == "bucket" {
				bucket := terraformoutput.BucketState{
					Name: options.Bucket,
				}
				for k := range provider.GetResourceConnections()[serviceName] {
					if _, exist := importedResource[k]; !exist {
						continue
					}
					variables["data"]["terraform_remote_state"][k] = map[string]interface{}{
						"backend": "gcs",
						"config":  bucket.BucketGetTfData(strings.ReplaceAll(path, serviceName, k)),
					}
				}
			} else {
				for k := range provider.GetResourceConnections()[serviceName] {
					if _, exist := importedResource[k]; !exist {
						continue
					}
					variables["data"]["terraform_remote_state"][k] = map[string]interface{}{
						"backend": "local",
						"config": map[string]interface{}{
							"path": strings.Repeat("../", strings.Count(path, "/")) + strings.ReplaceAll(path, serviceName, k) + "terraform.tfstate",
						},
					}
				}
			}
			// create variables file
			if len(provider.GetResourceConnections()[serviceName]) > 0 && options.Connect && len(variables["data"]["terraform_remote_state"]) > 0 {
				variablesFile, err := terraformutils.Print(variables, map[string]struct{}{"config": {}}, options.Output, !options.NoSort)
				if err != nil {
					return err
				}
				terraformoutput.PrintFile(path+"/variables."+terraformoutput.GetFileExtension(options.Output), variablesFile)
			}
		}
	} else {
		if options.Connect {
			variables := map[string]map[string]map[string]interface{}{}
			variables["data"] = map[string]map[string]interface{}{}
			variables["data"]["terraform_remote_state"] = map[string]interface{}{}
			if options.State == "bucket" {
				bucket := terraformoutput.BucketState{
					Name: options.Bucket,
				}
				variables["data"]["terraform_remote_state"]["local"] = map[string]interface{}{
					"backend": "gcs",
					"config":  bucket.BucketGetTfData(path),
				}
			} else {
				variables["data"]["terraform_remote_state"]["local"] = map[string]interface{}{
					"backend": "local",
					"config": map[string]interface{}{
						"path": "terraform.tfstate",
					},
				}
			}
			// create variables file
			if options.Connect {
				variablesFile, err := terraformutils.Print(variables, map[string]struct{}{"config": {}}, options.Output, !options.NoSort)
				if err != nil {
					return err
				}
				terraformoutput.PrintFile(path+"/variables."+terraformoutput.GetFileExtension(options.Output), variablesFile)
			}
		}
	}
	return nil
}

func Path(pathPattern, providerName, serviceName, output string) string {
	return strings.NewReplacer(
		"{provider}", providerName,
		"{service}", serviceName,
		"{output}", output,
	).Replace(pathPattern)
}

func listCmd(provider terraformutils.ProviderGenerator) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "list",
		Short: "List supported resources for " + provider.GetName() + " provider",
		Long:  "List supported resources for " + provider.GetName() + " provider",
		RunE: func(cmd *cobra.Command, args []string) error {
			services := providerServices(provider)
			for _, k := range services {
				fmt.Println(k)
			}
			return nil
		},
	}
	cmd.Flags().AddFlag(&pflag.Flag{Name: "resources"})
	return cmd
}

func providerServices(provider terraformutils.ProviderGenerator) []string {
	var services []string
	for k := range provider.GetSupportedService() {
		services = append(services, k)
	}
	sort.Strings(services)
	return services
}

func baseProviderFlags(flag *pflag.FlagSet, options *ImportOptions, sampleRes, sampleFilters string) {
	flag.BoolVarP(&options.Connect, "connect", "c", true, "")
	flag.BoolVarP(&options.Compact, "compact", "C", false, "")
	flag.StringSliceVarP(&options.Resources, "resources", "r", []string{}, sampleRes)
	flag.StringSliceVarP(&options.Excludes, "excludes", "x", []string{}, sampleRes)
	flag.StringVarP(&options.PathPattern, "path-pattern", "p", DefaultPathPattern, "{output}/{provider}/")
	flag.StringVarP(&options.PathOutput, "path-output", "o", DefaultPathOutput, "")
	flag.StringVarP(&options.State, "state", "s", DefaultState, "local or bucket")
	flag.StringVarP(&options.Bucket, "bucket", "b", "", "gs://terraform-state")
	flag.StringSliceVarP(&options.Filter, "filter", "f", []string{}, sampleFilters)
	flag.BoolVarP(&options.Verbose, "verbose", "v", false, "")
	flag.BoolVarP(&options.NoSort, "no-sort", "S", false, "set to disable sorting of HCL")
	flag.StringVarP(&options.Output, "output", "O", "hcl", "output format hcl or json")
	flag.IntVarP(&options.RetryCount, "retry-number", "n", 5, "number of retries to perform when refresh fails")
	flag.IntVarP(&options.RetrySleepMs, "retry-sleep-ms", "m", 300, "time in ms to sleep between retries")
}


================================================
FILE: cmd/plan.go
================================================
// Copyright 2018 The Terraformer 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 cmd

import (
	"encoding/json"
	"fmt"
	"log"
	"os"
	"path/filepath"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

type ImportPlan struct {
	Version          string
	Provider         string
	Options          ImportOptions
	Args             []string
	ImportedResource map[string][]terraformutils.Resource
}

func newPlanCmd() *cobra.Command {
	options := ImportOptions{
		Plan: true,
	}
	cmd := &cobra.Command{
		Use:           "plan",
		Short:         "Plan to import current state to Terraform configuration",
		Long:          "Plan to import current state to Terraform configuration",
		SilenceUsage:  true,
		SilenceErrors: false,
		//Version:       version.String(),
	}

	for _, subcommand := range providerImporterSubcommands() {
		cmd.AddCommand(subcommand(options))
	}
	return cmd
}

func newCmdPlanImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "plan",
		Short: "Import planned state to Terraform configuration",
		Long:  "Import planned state to Terraform configuration",
		Args:  cobra.ExactArgs(1),
		RunE: func(cmd *cobra.Command, args []string) error {
			plan, err := LoadPlanfile(args[0])
			if err != nil {
				return err
			}

			var provider terraformutils.ProviderGenerator
			if providerGen, ok := providerGenerators()[plan.Provider]; ok {
				provider = providerGen()
			} else {
				return fmt.Errorf("unsupported provider: %s", plan.Provider)
			}

			if err = provider.Init(plan.Args); err != nil {
				return err
			}

			for _, service := range plan.Options.Resources {
				if err = provider.InitService(service, options.Verbose); err != nil {
					return err
				}
			}

			return ImportFromPlan(provider, plan)
		},
	}
	return cmd
}

func LoadPlanfile(path string) (*ImportPlan, error) {
	f, err := os.Open(path)
	if err != nil {
		return nil, err
	}
	defer f.Close()

	plan := &ImportPlan{}
	dec := json.NewDecoder(f)
	dec.DisallowUnknownFields()
	if err := dec.Decode(plan); err != nil {
		return nil, err
	}

	if plan.Version != version {
		return nil, fmt.Errorf("planfile version did not match. expected: %s, actual: %s", version, plan.Version)
	}

	return plan, nil
}

func ExportPlanFile(plan *ImportPlan, path, filename string) error {
	plan.Version = version

	planfilePath := filepath.Join(path, filename)
	log.Println("Saving planfile to", planfilePath)

	if err := os.MkdirAll(path, os.ModePerm); err != nil {
		return err
	}

	f, err := os.OpenFile(planfilePath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, os.ModePerm)
	if err != nil {
		return err
	}
	defer f.Close()

	enc := json.NewEncoder(f)
	enc.SetIndent("", "\t")
	return enc.Encode(plan)
}


================================================
FILE: cmd/provider_cmd_alicloud.go
================================================
// Copyright 2018 The Terraformer 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 cmd

import (
	"log"

	alicloud_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/alicloud"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdAliCloudImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "alicloud",
		Short: "Import current State to terraform configuration from alicloud",
		Long:  "Import current State to terraform configuration from alicloud",
		RunE: func(cmd *cobra.Command, args []string) error {
			originalPathPattern := options.PathPattern
			for _, region := range options.Regions {
				provider := newAliCloudProvider()
				options.PathPattern = originalPathPattern
				options.PathPattern += region + "/"
				log.Println(provider.GetName() + " importing region " + region)
				profile := options.Profile
				err := Import(provider, options, []string{region, profile})
				if err != nil {
					return err
				}
			}
			return nil
		},
	}
	cmd.AddCommand(listCmd(newAliCloudProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "vpc,subnet,nacl", "slb=id1:id2:id4")
	cmd.PersistentFlags().StringVar(&options.Profile, "profile", "default", "prod")
	cmd.PersistentFlags().StringSliceVarP(&options.Regions, "regions", "", []string{}, "cn-hangzhou")
	return cmd
}

func newAliCloudProvider() terraformutils.ProviderGenerator {
	return &alicloud_terraforming.AliCloudProvider{}
}


================================================
FILE: cmd/provider_cmd_auth0.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	"errors"
	"os"

	auth0_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/auth0"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdAuth0Importer(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "auth0",
		Short: "Import current state to Terraform configuration from Auth0",
		Long:  "Import current state to Terraform configuration from Auth0",
		RunE: func(cmd *cobra.Command, args []string) error {
			domain := os.Getenv("AUTH0_DOMAIN")
			if len(domain) == 0 {
				return errors.New("Domain for Auth0 must be set through `AUTH0_DOMAIN` env var")
			}
			clientID := os.Getenv("AUTH0_CLIENT_ID")
			if len(clientID) == 0 {
				return errors.New("Client ID for Auht0 must be set through `AUTH0_CLIENT_ID` env var")
			}
			clientSecret := os.Getenv("AUTH0_CLIENT_SECRET")
			if len(clientSecret) == 0 {
				return errors.New("Clien Secret for Auth0 must be set through `AUTH0_CLIENT_SECRET` env var")
			}

			provider := newAuth0Provider()
			err := Import(provider, options, []string{domain, clientID, clientSecret})
			if err != nil {
				return err
			}
			return nil
		},
	}
	cmd.AddCommand(listCmd(newAuth0Provider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "action", "action=name1:name2:name3")
	return cmd
}

func newAuth0Provider() terraformutils.ProviderGenerator {
	return &auth0_terraforming.Auth0Provider{}
}


================================================
FILE: cmd/provider_cmd_aws.go
================================================
// Copyright 2018 The Terraformer 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 cmd

import (
	"log"

	awsterraformer "github.com/GoogleCloudPlatform/terraformer/providers/aws"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdAwsImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "aws",
		Short: "Import current state to Terraform configuration from AWS",
		Long:  "Import current state to Terraform configuration from AWS",
		RunE: func(cmd *cobra.Command, args []string) error {
			originalResources := options.Resources
			originalRegions := options.Regions
			originalPathPattern := options.PathPattern

			if len(options.Regions) > 0 {
				shouldSpecifyPathRegion := len(options.Regions) > 1
				globalResources, eastOnlyResources, regionalResources := parseAndGroupResources(originalResources)
				options.Resources = globalResources
				options.Regions = []string{awsterraformer.GlobalRegion}
				e := importGlobalResources(options)
				if e != nil {
					return e
				}

				options.Resources = eastOnlyResources
				options.Regions = []string{awsterraformer.MainRegionPublicPartition}
				e = importEastOnlyResources(options)
				if e != nil {
					return e
				}

				options.Resources = regionalResources
				options.Regions = originalRegions
				if len(options.Resources) > 0 { // don't import anything and potentially override global resources
					if len(globalResources) > 0 {
						shouldSpecifyPathRegion = true // we should keep global resources away from regional
					}
					for _, region := range originalRegions {
						e := importRegionResources(options, originalPathPattern, region, shouldSpecifyPathRegion)
						if e != nil {
							return e
						}
					}
				}
				return nil
			}
			err := importRegionResources(options, options.PathPattern, awsterraformer.NoRegion, false)
			if err != nil {
				return err
			}
			return nil
		},
	}
	cmd.AddCommand(listCmd(newAWSProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "vpc,subnet,nacl", "elb=id1:id2:id4")

	cmd.PersistentFlags().StringVarP(&options.Profile, "profile", "", "default", "prod")
	cmd.PersistentFlags().StringSliceVarP(&options.Regions, "regions", "", []string{}, "eu-west-1,eu-west-2,us-east-1")
	return cmd
}

// returns global, east-only, regional resources
func parseAndGroupResources(allResources []string) ([]string, []string, []string) {
	var globalResources, eastOnlyResources, regionalResources []string
	for _, resourceName := range allResources {
		if contains(awsterraformer.SupportedGlobalResources, resourceName) {
			globalResources = append(globalResources, resourceName)
		} else if contains(awsterraformer.SupportedEastOnlyResources, resourceName) {
			eastOnlyResources = append(eastOnlyResources, resourceName)
		} else {
			regionalResources = append(regionalResources, resourceName)
		}
	}
	return globalResources, eastOnlyResources, regionalResources
}

func importGlobalResources(options ImportOptions) error {
	if len(options.Resources) > 0 {
		return importRegionResources(options, options.PathPattern, awsterraformer.GlobalRegion, false)
	}
	return nil
}

func importEastOnlyResources(options ImportOptions) error {
	if len(options.Resources) > 0 {
		return importRegionResources(options, options.PathPattern, awsterraformer.MainRegionPublicPartition, false)
	}
	return nil
}

func importRegionResources(options ImportOptions, originalPathPattern string, region string, shouldSpecifyPathRegion bool) error {
	provider := newAWSProvider()
	options.PathPattern = originalPathPattern
	if region != awsterraformer.GlobalRegion && region != awsterraformer.NoRegion {
		if shouldSpecifyPathRegion {
			options.PathPattern += region + "/"
		}
		log.Println(provider.GetName() + " importing region " + region)
	} else {
		log.Println(provider.GetName() + " importing default region")
	}
	err := Import(provider, options, []string{region, options.Profile})
	if err != nil {
		return err
	}
	return nil
}

func newAWSProvider() terraformutils.ProviderGenerator {
	return &awsterraformer.AWSProvider{}
}

func contains(s []string, e string) bool {
	for _, a := range s {
		if a == e {
			return true
		}
	}
	return false
}


================================================
FILE: cmd/provider_cmd_azure.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	azure_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/azure"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdAzureImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "azure",
		Short: "Import current state to Terraform configuration from Azure",
		Long:  "Import current state to Terraform configuration from Azure",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newAzureProvider()
			err := Import(provider, options, []string{options.ResourceGroup})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newAzureProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "resource_group", "resource_group=name1:name2:name3")
	cmd.PersistentFlags().StringVarP(&options.ResourceGroup, "resource-group", "R", "", "")
	return cmd
}

func newAzureProvider() terraformutils.ProviderGenerator {
	return &azure_terraforming.AzureProvider{}
}


================================================
FILE: cmd/provider_cmd_azuread.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	azuread "github.com/GoogleCloudPlatform/terraformer/providers/azuread"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdAzureADImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "azuread",
		Short: "Import current state to Terraform configuration from Azure Active Directory",
		Long:  "Import current state to Terraform configuration from Azure Active Directory",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newAzureADProvider()
			err := Import(provider, options, []string{options.ResourceGroup})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newAzureADProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "resource_group", "resource_group=name1:name2:name3")
	cmd.PersistentFlags().StringVarP(&options.ResourceGroup, "resource-group", "R", "", "")
	return cmd
}

func newAzureADProvider() terraformutils.ProviderGenerator {
	return &azuread.AzureADProvider{}
}


================================================
FILE: cmd/provider_cmd_azuredevops.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	azuredevops "github.com/GoogleCloudPlatform/terraformer/providers/azuredevops"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdAzureDevOpsImporter(options ImportOptions) *cobra.Command {

	cmd := &cobra.Command{
		Use:   "azuredevops",
		Short: "Import current state to Terraform configuration from Azure DevOps",
		Long:  "Import current state to Terraform configuration from Azure DevOps",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newAzureDevOpsProvider()
			err := Import(provider, options, []string{options.ResourceGroup})
			if err != nil {
				return err
			}
			return nil
		},
	}
	cmd.AddCommand(listCmd(newAzureDevOpsProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "project,team,git", "project=name1:name2:name3")
	return cmd
}

func newAzureDevOpsProvider() terraformutils.ProviderGenerator {
	return &azuredevops.AzureDevOpsProvider{}
}


================================================
FILE: cmd/provider_cmd_cloudflare.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	cloudflare_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/cloudflare"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdCloudflareImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "cloudflare",
		Short: "Import current state to Terraform configuration from Cloudflare",
		Long:  "Import current state to Terraform configuration from Cloudflare",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newCloudflareProvider()
			err := Import(provider, options, []string{})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newCloudflareProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "zone", "access_application=id1:id2:id4")
	return cmd
}

func newCloudflareProvider() terraformutils.ProviderGenerator {
	return &cloudflare_terraforming.CloudflareProvider{}
}


================================================
FILE: cmd/provider_cmd_commercetools.go
================================================
// Copyright 2018 The Terraformer 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 cmd

import (
	"errors"
	"os"

	commercetools_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/commercetools"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

const (
	defaultCommercetoolsBaseURL  = "https://api.sphere.io"
	defaultCommercetoolsTokenURL = "https://auth.sphere.io"
)

func newCmdCommercetoolsImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "commercetools",
		Short: "Import current state to Terraform configuration from Commercetools",
		Long:  "Import current state to Terraform configuration from Commercetools",
		RunE: func(cmd *cobra.Command, args []string) error {
			clientID := os.Getenv("CTP_CLIENT_ID")
			if len(clientID) == 0 {
				return errors.New("API client ID for commercetools must be set through `CTP_CLIENT_ID` env var")
			}
			clientScope := os.Getenv("CTP_CLIENT_SCOPE")
			if len(clientScope) == 0 {
				return errors.New("API client scope for comercetools must be set through `CTP_CLIENT_SCOPE` env var")
			}
			clientSecret := os.Getenv("CTP_CLIENT_SECRET")
			if len(clientSecret) == 0 {
				return errors.New("API client secret for comercetools must be set through `CTP_CLIENT_SECRET` env var")
			}
			projectKey := os.Getenv("CTP_PROJECT_KEY")
			if len(projectKey) == 0 {
				return errors.New("API project key for comercetools must be set through `CTP_PROJECT_KEY` env var")
			}
			baseURL := os.Getenv("CTP_BASE_URL")
			if len(baseURL) == 0 {
				baseURL = defaultCommercetoolsBaseURL
			}
			tokenURL := os.Getenv("CTP_TOKEN_URL")
			if len(tokenURL) == 0 {
				tokenURL = defaultCommercetoolsTokenURL
			}
			provider := newCommercetoolsProvider()
			err := Import(provider, options, []string{clientID, clientScope, clientSecret, projectKey, baseURL, tokenURL})
			if err != nil {
				return err
			}
			return nil
		},
	}
	cmd.AddCommand(listCmd(newCommercetoolsProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "types", "type=id1:id2:id4")
	return cmd
}

func newCommercetoolsProvider() terraformutils.ProviderGenerator {
	return &commercetools_terraforming.CommercetoolsProvider{}
}


================================================
FILE: cmd/provider_cmd_datadog.go
================================================
// Copyright 2018 The Terraformer 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 cmd

import (
	datadog_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/datadog"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdDatadogImporter(options ImportOptions) *cobra.Command {
	var apiKey, appKey, apiURL, validate string
	cmd := &cobra.Command{
		Use:   "datadog",
		Short: "Import current state to Terraform configuration from Datadog",
		Long:  "Import current state to Terraform configuration from Datadog",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newDataDogProvider()
			err := Import(provider, options, []string{apiKey, appKey, apiURL, validate})
			if err != nil {
				return err
			}
			return nil
		},
	}
	cmd.AddCommand(listCmd(newDataDogProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "monitors,users", "monitor=id1:id2:id4")
	cmd.PersistentFlags().StringVarP(&apiKey, "api-key", "", "", "YOUR_DATADOG_API_KEY or env param DATADOG_API_KEY")
	cmd.PersistentFlags().StringVarP(&appKey, "app-key", "", "", "YOUR_DATADOG_APP_KEY or env param DATADOG_APP_KEY")
	cmd.PersistentFlags().StringVarP(&apiURL, "api-url", "", "", "YOUR_DATADOG_API_URL or env param DATADOG_HOST")
	cmd.PersistentFlags().StringVar(&validate, "validate", "", "bool-parsable values only or env param DATADOG_VALIDATE. Enables validation of the provided API and APP keys during provider initialization. Default is true. When false, api_key and app_key won't be checked")
	return cmd
}

func newDataDogProvider() terraformutils.ProviderGenerator {
	return &datadog_terraforming.DatadogProvider{}
}


================================================
FILE: cmd/provider_cmd_digitalocean.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	digitalocean_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/digitalocean"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdDigitalOceanImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "digitalocean",
		Short: "Import current state to Terraform configuration from DigitalOcean",
		Long:  "Import current state to Terraform configuration from DigitalOcean",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newDigitalOceanProvider()
			err := Import(provider, options, []string{})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newDigitalOceanProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "project,droplet", "project=name1:name2:name3")

	return cmd
}

func newDigitalOceanProvider() terraformutils.ProviderGenerator {
	return &digitalocean_terraforming.DigitalOceanProvider{}
}


================================================
FILE: cmd/provider_cmd_equinixmetal.go
================================================
// Copyright 2021 The Terraformer 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 cmd

import (
	equinixmetal_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/equinixmetal"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdEquinixMetalImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "metal",
		Short: "Import current state to Terraform configuration from Equinix Metal",
		Long:  "Import current state to Terraform configuration from Equinix Metal",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newEquinixMetalProvider()
			err := Import(provider, options, []string{})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newEquinixMetalProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "project,device", "project=name1:name2:name3")

	return cmd
}

func newEquinixMetalProvider() terraformutils.ProviderGenerator {
	return &equinixmetal_terraforming.EquinixMetalProvider{}
}


================================================
FILE: cmd/provider_cmd_fastly.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	fastly_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/fastly"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdFastlyImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "fastly",
		Short: "Import current state to Terraform configuration from Fastly",
		Long:  "Import current state to Terraform configuration from Fastly",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newFastlyProvider()
			err := Import(provider, options, []string{})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newFastlyProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "service_v1", "service_v1=id1:id2:id3")
	return cmd
}

func newFastlyProvider() terraformutils.ProviderGenerator {
	return &fastly_terraforming.FastlyProvider{}
}


================================================
FILE: cmd/provider_cmd_github.go
================================================
// Copyright 2018 The Terraformer 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 cmd

import (
	"log"
	"strings"

	github_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/github"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdGithubImporter(options ImportOptions) *cobra.Command {
	token := ""
	baseURL := ""
	owner := []string{}
	cmd := &cobra.Command{
		Use:   "github",
		Short: "Import current state to Terraform configuration from GitHub",
		Long:  "Import current state to Terraform configuration from GitHub",
		RunE: func(cmd *cobra.Command, args []string) error {
			originalPathPattern := options.PathPattern
			for _, organization := range owner {
				provider := newGitHubProvider()
				options.PathPattern = originalPathPattern
				options.PathPattern = strings.ReplaceAll(options.PathPattern, "{provider}", "{provider}/"+organization)
				log.Println(provider.GetName() + " importing organization " + organization)
				err := Import(provider, options, []string{organization, token, baseURL})
				if err != nil {
					return err
				}
			}
			return nil
		},
	}
	cmd.AddCommand(listCmd(newGitHubProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "repository", "repository=id1:id2:id4")
	cmd.PersistentFlags().StringVarP(&token, "token", "t", "", "YOUR_GITHUB_TOKEN or env param GITHUB_TOKEN")
	cmd.PersistentFlags().StringSliceVarP(&owner, "owner", "", []string{}, "")
	cmd.PersistentFlags().StringVarP(&baseURL, "base-url", "", "", "")
	return cmd
}

func newGitHubProvider() terraformutils.ProviderGenerator {
	return &github_terraforming.GithubProvider{}
}


================================================
FILE: cmd/provider_cmd_gitlab.go
================================================
// Copyright 2018 The Terraformer 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 cmd

import (
	"log"
	"strings"

	gitLab_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/gitlab"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdGitLabImporter(options ImportOptions) *cobra.Command {
	token := ""
	baseURL := ""
	groups := []string{}
	cmd := &cobra.Command{
		Use:   "gitlab",
		Short: "Import current state to Terraform configuration from GitLab",
		Long:  "Import current state to Terraform configuration from GitLab",
		RunE: func(cmd *cobra.Command, args []string) error {
			originalPathPattern := options.PathPattern
			for _, group := range groups {
				provider := newGitLabProvider()
				options.PathPattern = originalPathPattern
				options.PathPattern = strings.ReplaceAll(options.PathPattern, "{provider}", "{provider}/"+group)
				log.Println(provider.GetName() + " importing group " + group)
				err := Import(provider, options, []string{group, token, baseURL})
				if err != nil {
					return err
				}
			}
			return nil
		},
	}
	cmd.AddCommand(listCmd(newGitLabProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "repository", "repository=id1:id2:id4")
	cmd.PersistentFlags().StringVarP(&token, "token", "t", "", "YOUR_GITLAB_TOKEN or env param GITLAB_TOKEN")
	cmd.PersistentFlags().StringSliceVarP(&groups, "group", "", []string{}, "paths to groups")
	cmd.PersistentFlags().StringVarP(&baseURL, "base-url", "", "", "")
	return cmd
}

func newGitLabProvider() terraformutils.ProviderGenerator {
	return &gitLab_terraforming.GitLabProvider{}
}


================================================
FILE: cmd/provider_cmd_gmailfilter.go
================================================
// Copyright 2020 The Terraformer 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 cmd

import (
	gmailfilter_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/gmailfilter"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdGmailfilterImporter(options ImportOptions) *cobra.Command {
	var creds, impersonatedUserEmail string
	cmd := &cobra.Command{
		Use:   "gmailfilter",
		Short: "Import current state to Terraform configuration from Gmail",
		Long:  "Import current state to Terraform configuration from Gmail",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newGmailfilterProvider()
			err := Import(provider, options, []string{
				creds,
				impersonatedUserEmail,
			})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newGmailfilterProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "label,filter", "label=name1:name2")
	cmd.PersistentFlags().StringVarP(&creds, "credentials", "", "", "/path/to/client_secret.json")
	cmd.PersistentFlags().StringVarP(&impersonatedUserEmail, "email", "", "", "foobar@example.com")
	return cmd
}

func newGmailfilterProvider() terraformutils.ProviderGenerator {
	return &gmailfilter_terraforming.GmailfilterProvider{}
}


================================================
FILE: cmd/provider_cmd_google.go
================================================
// Copyright 2018 The Terraformer 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 cmd

import (
	"log"
	"strings"

	gcp_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/gcp"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdGoogleImporter(options ImportOptions) *cobra.Command {
	providerType := ""
	cmd := &cobra.Command{
		Use:   "google",
		Short: "Import current state to Terraform configuration from Google Cloud",
		Long:  "Import current state to Terraform configuration from Google Cloud",
		RunE: func(cmd *cobra.Command, args []string) error {
			originalPathPattern := options.PathPattern
			for _, project := range options.Projects {
				for _, region := range options.Regions {
					provider := newGoogleProvider()
					options.PathPattern = originalPathPattern
					options.PathPattern = strings.ReplaceAll(options.PathPattern, "{provider}/{service}", "{provider}/"+project+"/{service}/"+region)
					log.Println(provider.GetName() + " importing project " + project + " region " + region)
					err := Import(provider, options, []string{region, project, providerType})
					if err != nil {
						return err
					}
				}
			}
			return nil
		},
	}
	cmd.AddCommand(listCmd(newGoogleProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "firewalls,networks", "compute_firewall=id1:id2:id4")
	cmd.PersistentFlags().StringSliceVarP(&options.Regions, "regions", "z", []string{"global"}, "europe-west1,")
	cmd.PersistentFlags().StringSliceVarP(&options.Projects, "projects", "", []string{}, "")
	cmd.PersistentFlags().StringVarP(&providerType, "provider-type", "", "", "beta")
	_ = cmd.MarkPersistentFlagRequired("projects")
	return cmd
}

func newGoogleProvider() terraformutils.ProviderGenerator {
	return &gcp_terraforming.GCPProvider{}
}


================================================
FILE: cmd/provider_cmd_grafana.go
================================================
// Copyright 2018 The Terraformer 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 cmd

import (
	"github.com/GoogleCloudPlatform/terraformer/providers/grafana"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdGrafanaImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "grafana",
		Short: "Import current state to Terraform configuration from Grafana",
		Long:  "Import current state to Terraform configuration from Grafana",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newGrafanaProvider()
			err := Import(provider, options, []string{})
			if err != nil {
				return err
			}
			return nil
		},
	}
	cmd.AddCommand(listCmd(newGrafanaProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "grafana_dashboard", "dashboard=slug1")
	return cmd
}

func newGrafanaProvider() terraformutils.ProviderGenerator {
	return &grafana.GrafanaProvider{}
}


================================================
FILE: cmd/provider_cmd_heroku.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	"errors"
	"os"

	heroku_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/heroku"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdHerokuImporter(options ImportOptions) *cobra.Command {
	var apiKey, team string

	cmd := &cobra.Command{
		Use:   "heroku",
		Short: "Import current state to Terraform configuration from Heroku",
		Long:  "Import current state to Terraform configuration from Heroku",
		RunE: func(cmd *cobra.Command, args []string) error {
			if apiKey = os.Getenv("HEROKU_API_KEY"); apiKey == "" {
				return errors.New("Requires HEROKU_API_KEY env var")
			}
			provider := newHerokuProvider()
			err := Import(provider, options, []string{apiKey, team})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newHerokuProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "app,addon", "app=ID")
	cmd.PersistentFlags().StringVarP(&team, "team", "", "", "")
	return cmd
}

func newHerokuProvider() terraformutils.ProviderGenerator {
	return &heroku_terraforming.HerokuProvider{}
}


================================================
FILE: cmd/provider_cmd_honeycombio.go
================================================
// Copyright 2022 The Terraformer 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 cmd

import (
	honeycombio_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/honeycombio"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdHoneycombioImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "honeycombio",
		Short: "Import current state to Terraform configuration from Honeycomb.io",
		Long:  "Import current state to Terraform configuration from Honeycomb.io",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newHoneycombioProvider()
			err := Import(provider, options, options.Projects)
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newHoneycombioProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "derived_column,board", "board=id1,id2")
	cmd.PersistentFlags().StringSliceVarP(&options.Projects, "datasets", "", []string{}, "hello-service,goodbye-service")

	return cmd
}

func newHoneycombioProvider() terraformutils.ProviderGenerator {
	return &honeycombio_terraforming.HoneycombProvider{}
}


================================================
FILE: cmd/provider_cmd_ibm.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	ibm_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/ibm"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdIbmImporter(options ImportOptions) *cobra.Command {
	var resourceGroup string
	var region string
	var cis string
	var vpc string
	cmd := &cobra.Command{
		Use:   "ibm",
		Short: "Import current state to Terraform configuration from ibm",
		Long:  "Import current state to Terraform configuration from ibm",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newIbmProvider()
			err := Import(provider, options, []string{resourceGroup, region, cis, vpc})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newIbmProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "server", "ibm_server=name1:name2:name3")
	cmd.PersistentFlags().StringVarP(&resourceGroup, "resource_group", "", "", "resource_group=default")
	cmd.PersistentFlags().StringVarP(&region, "region", "R", "", "region=us-south")
	cmd.PersistentFlags().StringVarP(&cis, "cis", "", "", "cis=TestCIS")
	cmd.PersistentFlags().StringVarP(&vpc, "vpc", "", "", "vpc=vpc01")
	return cmd
}

func newIbmProvider() terraformutils.ProviderGenerator {
	return &ibm_terraforming.IBMProvider{}
}


================================================
FILE: cmd/provider_cmd_ionoscloud.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	ionoscloud_terraformer "github.com/GoogleCloudPlatform/terraformer/providers/ionoscloud"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdIonosCloudImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "ionoscloud",
		Short: "Import current state to Terraform configuration from IONOS Cloud",
		Long:  "Import current state to Terraform configuration from IONOS Cloud",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newIonosCloudProvider()
			err := Import(provider, options, []string{})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newIonosCloudProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "app,addon", "app=name1:name2:name3")
	return cmd
}

func newIonosCloudProvider() terraformutils.ProviderGenerator {
	return &ionoscloud_terraformer.IonosCloudProvider{}
}


================================================
FILE: cmd/provider_cmd_keycloak.go
================================================
// Copyright 2018 The Terraformer 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 cmd

import (
	"log"
	"os"
	"strconv"
	"strings"

	keycloak_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/keycloak"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

const (
	defaultKeycloakEndpoint              = "https://localhost:8443"
	defaultKeycloakBasePath              = "" // Override with `export KEYCLOAK_BASE_PATH=/auth` for the legacy version of Keycloak.
	defaultKeycloakRealm                 = "master"
	defaultKeycloakClientTimeout         = int64(30)
	defaultKeycloakTLSInsecureSkipVerify = false
	defaultRedHatSSO                     = false
)

func newCmdKeycloakImporter(options ImportOptions) *cobra.Command {
	targets := []string{}
	cmd := &cobra.Command{
		Use:   "keycloak",
		Short: "Import current state to Terraform configuration from Keycloak",
		Long:  "Import current state to Terraform configuration from Keycloak",
		RunE: func(cmd *cobra.Command, args []string) error {
			url := os.Getenv("KEYCLOAK_URL")
			if len(url) == 0 {
				url = defaultKeycloakEndpoint
			}
			basePath, ok := os.LookupEnv("KEYCLOAK_BASE_PATH")
			if !ok {
				basePath = defaultKeycloakBasePath
			}
			redHatSSO, err := strconv.ParseBool(os.Getenv("RED_HAT_SSO"))
			if err != nil {
				redHatSSO = defaultRedHatSSO
			}
			clientID := os.Getenv("KEYCLOAK_CLIENT_ID")
			clientSecret := os.Getenv("KEYCLOAK_CLIENT_SECRET")
			realm := os.Getenv("KEYCLOAK_REALM")
			if len(realm) == 0 {
				realm = defaultKeycloakRealm
			}
			clientTimeout, err := strconv.ParseInt(os.Getenv("KEYCLOAK_CLIENT_TIMEOUT"), 10, 64)
			if err != nil {
				clientTimeout = defaultKeycloakClientTimeout
			}
			tlsInsecureSkipVerify, err := strconv.ParseBool(os.Getenv("KEYCLOAK_TLS_INSECURE_SKIP_VERIFY"))
			if err != nil {
				tlsInsecureSkipVerify = defaultKeycloakTLSInsecureSkipVerify
			}
			caCert := os.Getenv("KEYCLOAK_CACERT")
			if len(caCert) == 0 {
				caCert = "-"
			}
			if len(targets) > 0 {
				originalPathPattern := options.PathPattern
				for _, target := range targets {
					provider := newKeycloakProvider()
					log.Println(provider.GetName() + " importing realm " + target)
					options.PathPattern = originalPathPattern
					options.PathPattern = strings.ReplaceAll(options.PathPattern, "{provider}", "{provider}/"+target)
					err := Import(provider, options, []string{url, basePath, clientID, clientSecret, realm, strconv.FormatInt(clientTimeout, 10), caCert, strconv.FormatBool(tlsInsecureSkipVerify), strconv.FormatBool(redHatSSO), target})
					if err != nil {
						return err
					}
				}
			} else {
				provider := newKeycloakProvider()
				log.Println(provider.GetName() + " importing all realms")
				err := Import(provider, options, []string{url, basePath, clientID, clientSecret, realm, strconv.FormatInt(clientTimeout, 10), caCert, strconv.FormatBool(tlsInsecureSkipVerify), strconv.FormatBool(redHatSSO), "-"})
				if err != nil {
					return err
				}
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newKeycloakProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "realms", "type=id1:id2:id4")
	cmd.PersistentFlags().StringSliceVarP(&targets, "targets", "", []string{}, "")
	return cmd
}

func newKeycloakProvider() terraformutils.ProviderGenerator {
	return &keycloak_terraforming.KeycloakProvider{}
}


================================================
FILE: cmd/provider_cmd_kubernetes.go
================================================
// Copyright 2018 The Terraformer 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 cmd

import (
	"strconv"

	kubernetes_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/kubernetes"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdKubernetesImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "kubernetes",
		Short: "Import current state to Terraform configuration from Kubernetes",
		Long:  "Import current state to Terraform configuration from Kubernetes",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newKubernetesProvider()
			err := Import(provider, options, []string{strconv.FormatBool(options.Verbose)})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newKubernetesProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "configmaps,deployments,services", "deployment=name1:name2:name3")
	return cmd
}

func newKubernetesProvider() terraformutils.ProviderGenerator {
	return &kubernetes_terraforming.KubernetesProvider{}
}


================================================
FILE: cmd/provider_cmd_launchdarkly.go
================================================
// Copyright 2021 The Terraformer 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 cmd

import (
	launchdarkly_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/launchdarkly"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdLaunchDarklyImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "launchdarkly",
		Short: "Import current state to Terraform configuration from LaunchDarkly",
		Long:  "Import current state to Terraform configuration from LaunchDarkly",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newLaunchDarklyProvider()
			err := Import(provider, options, []string{})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newLaunchDarklyProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "project", "launchdarkly_project=id1:id2:id3")
	return cmd
}

func newLaunchDarklyProvider() terraformutils.ProviderGenerator {
	return &launchdarkly_terraforming.LaunchDarklyProvider{}
}


================================================
FILE: cmd/provider_cmd_linode.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	linode_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/linode"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdLinodeImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "linode",
		Short: "Import current state to Terraform configuration from Linode",
		Long:  "Import current state to Terraform configuration from Linode",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newLinodeProvider()
			err := Import(provider, options, []string{})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newLinodeProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "instance", "instance=name1:name2:name3")
	return cmd
}

func newLinodeProvider() terraformutils.ProviderGenerator {
	return &linode_terraforming.LinodeProvider{}
}


================================================
FILE: cmd/provider_cmd_logzio.go
================================================
// Copyright 2018 The Terraformer 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 cmd

import (
	"errors"
	"os"

	logzio_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/logzio"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

const (
	defaultBaseURL = "https://api.logz.io"
)

func newCmdLogzioImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "logzio",
		Short: "Import current state to Terraform configuration from Logz.io",
		Long:  "Import current state to Terraform configuration from Logz.io",
		RunE: func(cmd *cobra.Command, args []string) error {
			token := os.Getenv("LOGZIO_API_TOKEN")
			if len(token) == 0 {
				return errors.New("API Token for Logz.io must be set through `LOGZIO_API_TOKEN` env var")
			}
			baseURL := os.Getenv("LOGZIO_BASE_URL")
			if len(baseURL) == 0 {
				baseURL = defaultBaseURL
			}

			provider := newLogzioProvider()
			err := Import(provider, options, []string{token, baseURL})
			if err != nil {
				return err
			}
			return nil
		},
	}
	cmd.AddCommand(listCmd(newLogzioProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "repository", "alert=id1:id2:id4")
	return cmd
}

func newLogzioProvider() terraformutils.ProviderGenerator {
	return &logzio_terraforming.LogzioProvider{}
}


================================================
FILE: cmd/provider_cmd_mackerel.go
================================================
// Copyright 2021 The Terraformer 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 cmd

import (
	mackerel_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/mackerel"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdMackerelImporter(options ImportOptions) *cobra.Command {
	var apiKey string
	cmd := &cobra.Command{
		Use:   "mackerel",
		Short: "Import current state to Terraform configuration from Mackerel",
		Long:  "Import current state to Terraform configuration from Mackerel",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newMackerelProvider()
			err := Import(provider, options, []string{apiKey})
			if err != nil {
				return err
			}
			return nil
		},
	}
	cmd.AddCommand(listCmd(newMackerelProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "service,role,aws_integration", "aws_integration=id1:id2:id4")
	cmd.PersistentFlags().StringVarP(&apiKey, "api-key", "", "", "YOUR_MACKEREL_API_KEY or env param MACKEREL_API_KEY")
	return cmd
}

func newMackerelProvider() terraformutils.ProviderGenerator {
	return &mackerel_terraforming.MackerelProvider{}
}


================================================
FILE: cmd/provider_cmd_mikrotik.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	mikrotik_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/mikrotik"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdMikrotikImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "mikrotik",
		Short: "Import current state to Terraform configuration from RouterOS",
		Long:  "Import current state to Terraform configuration from RouterOS",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newMikrotikProvider()
			err := Import(provider, options, []string{})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newMikrotikProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "instance", "dhcp_lease=name1:name2:name3")
	return cmd
}

func newMikrotikProvider() terraformutils.ProviderGenerator {
	return &mikrotik_terraforming.MikrotikProvider{}
}


================================================
FILE: cmd/provider_cmd_myrasec.go
================================================
package cmd

import (
	myrasec_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/myrasec"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

//
// newCmdMyrasecImporter
//
func newCmdMyrasecImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "myrasec",
		Short: "Import current state to Terraform configuration from Myra Security",
		Long:  "Import current state to Terraform configuration from Myra Security",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newMyrasecProvider()
			err := Import(provider, options, []string{})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newMyrasecProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "domain", "")
	return cmd
}

//
// newMyrasecProvider
//
func newMyrasecProvider() terraformutils.ProviderGenerator {
	return &myrasec_terraforming.MyrasecProvider{}
}


================================================
FILE: cmd/provider_cmd_newrelic.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	newrelic_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/newrelic"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdNewRelicImporter(options ImportOptions) *cobra.Command {
	apiKey := ""
	accountID := ""
	region := ""
	cmd := &cobra.Command{
		Use:   "newrelic",
		Short: "Import current state to Terraform configuration from New Relic",
		Long:  "Import current state to Terraform configuration from New Relic",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newNewRelicProvider()
			err := Import(provider, options, []string{apiKey, accountID, region})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newNewRelicProvider()))
	cmd.PersistentFlags().StringVar(&apiKey, "api-key", "", "Your Personal API Key")
	cmd.PersistentFlags().StringVar(&accountID, "account-id", "", "Your Account ID")
	cmd.PersistentFlags().StringVar(&region, "region", "US", "")
	baseProviderFlags(cmd.PersistentFlags(), &options, "alert", "dashboard=id1:id2:id4")
	return cmd
}

func newNewRelicProvider() terraformutils.ProviderGenerator {
	return &newrelic_terraforming.NewRelicProvider{}
}


================================================
FILE: cmd/provider_cmd_ns1.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	ns1_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/ns1"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdNs1Importer(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "ns1",
		Short: "Import current state to Terraform configuration from NS1",
		Long:  "Import current state to Terraform configuration from NS1",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newNs1Provider()
			err := Import(provider, options, []string{})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newNs1Provider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "zone", "zone=id1:id2:id4")
	return cmd
}

func newNs1Provider() terraformutils.ProviderGenerator {
	return &ns1_terraforming.Ns1Provider{}
}


================================================
FILE: cmd/provider_cmd_octopusdeploy.go
================================================
package cmd

import (
	octopusdeploy_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/octopusdeploy"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdOctopusDeployImporter(options ImportOptions) *cobra.Command {
	var server, apiKey string
	cmd := &cobra.Command{
		Use:   "octopusdeploy",
		Short: "Import current state to Terraform configuration from Octopus Deploy",
		Long:  "Import current state to Terraform configuration from Octopus Deploy",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newOctopusDeployProvider()
			options.PathPattern = "{output}/{provider}/"
			err := Import(provider, options, []string{server, apiKey})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newOctopusDeployProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "octopusdeploy", "tagset")
	cmd.PersistentFlags().StringVar(&server, "server", "", "Octopus Server's API endpoint or env param OCTOPUS_CLI_SERVER")
	cmd.PersistentFlags().StringVar(&apiKey, "apikey", "", "Octopus API key or env param OCTOPUS_CLI_API_KEY")
	return cmd
}

func newOctopusDeployProvider() terraformutils.ProviderGenerator {
	return &octopusdeploy_terraforming.OctopusDeployProvider{}
}


================================================
FILE: cmd/provider_cmd_okta.go
================================================
// Copyright 2018 The Terraformer 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 cmd

import (
	"errors"
	"os"

	okta_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/okta"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdOktaImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "okta",
		Short: "Import current State to terraform configuration from okta",
		Long:  "Import current State to terraform configuration from okta",
		RunE: func(cmd *cobra.Command, args []string) error {
			token := os.Getenv("OKTA_API_TOKEN")
			if len(token) == 0 {
				return errors.New("API Token for Okta must be set through `OKTA_API_TOKEN` env var")
			}
			baseURL := os.Getenv("OKTA_BASE_URL")
			if len(baseURL) == 0 {
				return errors.New("Base URL for Okta must be set through `OKTA_BASE_URL` env var")
			}
			orgName := os.Getenv("OKTA_ORG_NAME")
			if len(orgName) == 0 {
				return errors.New("Org Name for Okta must be set through `OKTA_ORG_NAME` env var")
			}

			provider := newOktaProvider()
			err := Import(provider, options, []string{orgName, token, baseURL})
			if err != nil {
				return err
			}
			return nil
		},
	}
	cmd.AddCommand(listCmd(newOktaProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "user", "okta_user=user1:user2:user3")
	return cmd
}

func newOktaProvider() terraformutils.ProviderGenerator {
	return &okta_terraforming.OktaProvider{}
}


================================================
FILE: cmd/provider_cmd_opal.go
================================================
// Copyright 2022 The Terraformer 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 cmd

import (
	opal_terraformer "github.com/GoogleCloudPlatform/terraformer/providers/opal"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdOpalImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "opal",
		Short: "Import current state to Terraform configuration from opal.dev",
		Long:  "Import current state to Terraform configuration from opal.dev",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newOpalProvider()
			err := Import(provider, options, options.Projects)
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newOpalProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "", "")

	return cmd
}

func newOpalProvider() terraformutils.ProviderGenerator {
	return &opal_terraformer.OpalProvider{}
}


================================================
FILE: cmd/provider_cmd_openstack.go
================================================
// Copyright 2018 The Terraformer 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 cmd

import (
	"log"

	openstack_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/openstack"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdOpenStackImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "openstack",
		Short: "Import current state to Terraform configuration from OpenStack",
		Long:  "Import current state to Terraform configuration from OpenStack",
		RunE: func(cmd *cobra.Command, args []string) error {
			originalPathPattern := options.PathPattern
			for _, region := range options.Regions {
				provider := newOpenStackProvider()
				options.PathPattern = originalPathPattern
				options.PathPattern += region + "/"
				log.Println(provider.GetName() + " importing region " + region)
				err := Import(provider, options, []string{region})
				if err != nil {
					return err
				}
			}
			return nil
		},
	}
	cmd.AddCommand(listCmd(newOpenStackProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "compute,networking", "compute_instance_v2=id1:id2:id4")
	cmd.PersistentFlags().StringSliceVarP(&options.Regions, "regions", "", []string{}, "RegionOne")
	return cmd
}

func newOpenStackProvider() terraformutils.ProviderGenerator {
	return &openstack_terraforming.OpenStackProvider{}
}


================================================
FILE: cmd/provider_cmd_opsgenie.go
================================================
package cmd

import (
	"github.com/spf13/cobra"

	opsgenie_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/opsgenie"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
)

func newCmdOpsgenieImporter(options ImportOptions) *cobra.Command {
	var apiKey string
	cmd := &cobra.Command{
		Use:   "opsgenie",
		Short: "Import current state to Terraform configuration from Opsgenie",
		Long:  "Import current state to Terraform configuration from Opsgenie",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newOpsgenieProvider()
			err := Import(provider, options, []string{apiKey})
			if err != nil {
				return err
			}
			return nil
		},
	}
	cmd.AddCommand(listCmd(newOpsgenieProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "user,team", "")
	cmd.PersistentFlags().StringVarP(&apiKey, "api-key", "", "", "YOUR_OPSGENIE_API_KEY or env param OPSGENIE_API_KEY")
	return cmd
}

func newOpsgenieProvider() terraformutils.ProviderGenerator {
	return &opsgenie_terraforming.OpsgenieProvider{}
}


================================================
FILE: cmd/provider_cmd_pagerduty.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	pagerduty_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/pagerduty"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdPagerDutyImporter(options ImportOptions) *cobra.Command {
	token := ""
	cmd := &cobra.Command{
		Use:   "pagerduty",
		Short: "Import current state to Terraform configuration from PagerDuty",
		Long:  "Import current state to Terraform configuration from PagerDuty",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newPagerDutyProvider()
			err := Import(provider, options, []string{token})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newPagerDutyProvider()))
	cmd.PersistentFlags().StringVarP(&token, "token", "t", "", "env param PAGERDUTY_TOKEN")
	baseProviderFlags(cmd.PersistentFlags(), &options, "user", "user=id1:id2:id4")
	return cmd
}

func newPagerDutyProvider() terraformutils.ProviderGenerator {
	return &pagerduty_terraforming.PagerDutyProvider{}
}


================================================
FILE: cmd/provider_cmd_panos.go
================================================
// Copyright 2018 The Terraformer 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 cmd

import (
	"log"
	"reflect"
	"strings"

	panos_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/panos"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdPanosImporter(options ImportOptions) *cobra.Command {
	vsys := []string{}
	cmd := &cobra.Command{
		Use:   "panos",
		Short: "Import current state to Terraform configuration from a PAN-OS",
		Long:  "Import current state to Terraform configuration from a PAN-OS",
		RunE: func(cmd *cobra.Command, args []string) error {
			var t interface{}

			if len(vsys) == 0 {
				var err error

				vsys, t, err = panos_terraforming.GetVsysList()
				if err != nil {
					return err
				}
			} else {
				c, err := panos_terraforming.Initialize()
				if err != nil {
					return err
				}

				t = reflect.TypeOf(c)
			}

			resources := panos_terraforming.FilterCallableResources(t, options.Resources)
			options.Resources = resources

			originalPathPattern := options.PathPattern
			for _, v := range vsys {
				provider := newPanosProvider()
				log.Println(provider.GetName() + " importing VSYS " + v)
				options.PathPattern = originalPathPattern
				options.PathPattern = strings.ReplaceAll(options.PathPattern, "{provider}", "{provider}/"+v)

				err := Import(provider, options, []string{v})
				if err != nil {
					return err
				}
			}

			return nil
		},
	}

	cmd.AddCommand(listCmd(newPanosProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "firewall_device_config,firewall_networking,firewall_objects,firewall_policy", "")
	cmd.PersistentFlags().StringSliceVarP(&vsys, "vsys", "", []string{}, "")

	return cmd
}

func newPanosProvider() terraformutils.ProviderGenerator {

	return &panos_terraforming.PanosProvider{}
}


================================================
FILE: cmd/provider_cmd_rabbitmq.go
================================================
// Copyright 2018 The Terraformer 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 cmd

import (
	"os"

	rabbitmq_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/rabbitmq"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

const (
	defaultRabbitMQEndpoint = "http://localhost:15672"
)

func newCmdRabbitMQImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "rabbitmq",
		Short: "Import current state to Terraform configuration from RabbitMQ",
		Long:  "Import current state to Terraform configuration from RabbitMQ",
		RunE: func(cmd *cobra.Command, args []string) error {
			endpoint := os.Getenv("RABBITMQ_SERVER_URL")
			if len(endpoint) == 0 {
				endpoint = defaultRabbitMQEndpoint
			}
			username := os.Getenv("RABBITMQ_USERNAME")
			password := os.Getenv("RABBITMQ_PASSWORD")
			provider := newRabbitMQProvider()
			err := Import(provider, options, []string{endpoint, username, password})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newRabbitMQProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "vhosts", "type=id1:id2:id4")
	return cmd
}

func newRabbitMQProvider() terraformutils.ProviderGenerator {
	return &rabbitmq_terraforming.RBTProvider{}
}


================================================
FILE: cmd/provider_cmd_tencentcloud.go
================================================
// Copyright 2021 The Terraformer 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 cmd

import (
	"log"

	tencentcloud_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/tencentcloud"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdTencentCloudImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "tencentcloud",
		Short: "Import current state to Terraform configuration from Tencent Cloud",
		Long:  "Import current state to Terraform configuration from Tencent Cloud",
		RunE: func(cmd *cobra.Command, args []string) error {
			originalPathPattern := options.PathPattern
			for _, region := range options.Regions {
				provider := newTencentCloudProvider()
				options.PathPattern = originalPathPattern
				options.PathPattern += region + "/"
				log.Println(provider.GetName() + " importing region " + region)
				err := Import(provider, options, []string{region})
				if err != nil {
					return err
				}
			}
			return nil
		},
	}
	cmd.AddCommand(listCmd(newTencentCloudProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "cvm,vpc,cdn", "tencentcloud_vpc=id1:id2:id3")
	cmd.PersistentFlags().StringSliceVarP(&options.Regions, "regions", "", []string{}, "ap-guangzhou")
	return cmd
}

func newTencentCloudProvider() terraformutils.ProviderGenerator {
	return &tencentcloud_terraforming.TencentCloudProvider{}
}


================================================
FILE: cmd/provider_cmd_vault.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	vault_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/vault"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdVaultImporter(options ImportOptions) *cobra.Command {
	var token, address string
	cmd := &cobra.Command{
		Use:   "vault",
		Short: "Import current state to Terraform configuration from Vault",
		Long:  "Import current state to Terraform configuration from Vault",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newVaultProvider()
			err := Import(provider, options, []string{address, token})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newVaultProvider()))
	cmd.PersistentFlags().StringVarP(&address, "address", "a", "", "env param VAULT_ADDR")
	cmd.PersistentFlags().StringVarP(&token, "token", "t", "", "env param VAULT_TOKEN")
	baseProviderFlags(cmd.PersistentFlags(), &options, "", "")
	return cmd
}

func newVaultProvider() terraformutils.ProviderGenerator {
	return &vault_terraforming.Provider{}
}


================================================
FILE: cmd/provider_cmd_vultr.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	vultr_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/vultr"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdVultrImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "vultr",
		Short: "Import current state to Terraform configuration from Vultr",
		Long:  "Import current state to Terraform configuration from Vultr",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newVultrProvider()
			err := Import(provider, options, []string{})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newVultrProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "server", "server=name1:name2:name3")
	return cmd
}

func newVultrProvider() terraformutils.ProviderGenerator {
	return &vultr_terraforming.VultrProvider{}
}


================================================
FILE: cmd/provider_cmd_xenorchestra.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	xenorchestra_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/xenorchestra"
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdXenorchestraImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "xenorchestra",
		Short: "Import current state to Terraform configuration from Xen Orchestra",
		Long:  "Import current state to Terraform configuration from Xen Orchestra",
		RunE: func(cmd *cobra.Command, args []string) error {
			provider := newXenorchestraProvider()
			err := Import(provider, options, []string{})
			if err != nil {
				return err
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newXenorchestraProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "instance", "acl=name1:name2:name3")
	return cmd
}

func newXenorchestraProvider() terraformutils.ProviderGenerator {
	return &xenorchestra_terraforming.XenorchestraProvider{}
}


================================================
FILE: cmd/provider_cmd_yandex.go
================================================
// Copyright 2019 The Terraformer 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 cmd

import (
	"log"
	"strings"

	yandex_terraforming "github.com/GoogleCloudPlatform/terraformer/providers/yandex"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func newCmdYandexImporter(options ImportOptions) *cobra.Command {
	cmd := &cobra.Command{
		Use:   "yandex",
		Short: "Import current state to Terraform configuration from Yandex Cloud",
		Long:  "Import current state to Terraform configuration from Yandex Cloud",
		RunE: func(cmd *cobra.Command, args []string) error {

			originalPathPattern := options.PathPattern
			// iterate over provided folder_ids
			for _, folderID := range options.Projects {
				provider := newYandexProvider()
				options.PathPattern = originalPathPattern
				options.PathPattern = strings.ReplaceAll(options.PathPattern, "{provider}/{service}", "{provider}/"+folderID+"/{service}")
				log.Println(provider.GetName() + " importing folder id " + folderID)
				err := Import(provider, options, []string{folderID})
				if err != nil {
					return err
				}
			}
			return nil
		},
	}

	cmd.AddCommand(listCmd(newYandexProvider()))
	baseProviderFlags(cmd.PersistentFlags(), &options, "instance,disk", "")
	cmd.Flags().StringSliceVarP(&options.Projects, "folder_ids", "", []string{}, "folder_id_1,folder_id_2")
	_ = cmd.MarkFlagRequired("folder_ids")
	return cmd
}

func newYandexProvider() terraformutils.ProviderGenerator {
	return &yandex_terraforming.YandexProvider{}
}


================================================
FILE: cmd/root.go
================================================
// Copyright 2018 The Terraformer 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 cmd

import (
	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	"github.com/spf13/cobra"
)

func NewCmdRoot() *cobra.Command {
	cmd := &cobra.Command{
		SilenceUsage:  true,
		SilenceErrors: true,
		Version:       version,
	}
	cmd.AddCommand(newImportCmd())
	cmd.AddCommand(newPlanCmd())
	cmd.AddCommand(versionCmd)
	return cmd
}

func Execute() error {
	cmd := NewCmdRoot()
	return cmd.Execute()
}

func providerImporterSubcommands() []func(options ImportOptions) *cobra.Command {
	return []func(options ImportOptions) *cobra.Command{
		// Major Cloud
		newCmdGoogleImporter,
		newCmdAwsImporter,
		newCmdAzureImporter,
		newCmdAliCloudImporter,
		newCmdIbmImporter,
		// Cloud
		newCmdDigitalOceanImporter,
		newCmdEquinixMetalImporter,
		newCmdHerokuImporter,
		newCmdLaunchDarklyImporter,
		newCmdLinodeImporter,
		newCmdOpenStackImporter,
		newCmdTencentCloudImporter,
		newCmdVultrImporter,
		newCmdYandexImporter,
		newCmdIonosCloudImporter,
		// Infrastructure Software
		newCmdKubernetesImporter,
		newCmdOctopusDeployImporter,
		newCmdRabbitMQImporter,
		// Network
		newCmdMyrasecImporter,
		newCmdCloudflareImporter,
		newCmdFastlyImporter,
		newCmdNs1Importer,
		newCmdPanosImporter,
		// VCS
		newCmdAzureDevOpsImporter,
		newCmdAzureADImporter,
		newCmdGithubImporter,
		newCmdGitLabImporter,
		// Monitoring & System Management
		newCmdDatadogImporter,
		newCmdNewRelicImporter,
		newCmdMackerelImporter,
		newCmdGrafanaImporter,
		newCmdPagerDutyImporter,
		newCmdOpsgenieImporter,
		newCmdHoneycombioImporter,
		newCmdOpalImporter,
		// Community
		newCmdKeycloakImporter,
		newCmdLogzioImporter,
		newCmdCommercetoolsImporter,
		newCmdMikrotikImporter,
		newCmdXenorchestraImporter,
		newCmdGmailfilterImporter,
		newCmdVaultImporter,
		newCmdOktaImporter,
		newCmdAuth0Importer,
	}
}

func providerGenerators() map[string]func() terraformutils.ProviderGenerator {
	list := make(map[string]func() terraformutils.ProviderGenerator)
	for _, providerGen := range []func() terraformutils.ProviderGenerator{
		// Major Cloud
		newGoogleProvider,
		newAWSProvider,
		newAzureProvider,
		newAliCloudProvider,
		newIbmProvider,
		// Cloud
		newDigitalOceanProvider,
		newEquinixMetalProvider,
		newFastlyProvider,
		newHerokuProvider,
		newLaunchDarklyProvider,
		newLinodeProvider,
		newNs1Provider,
		newOpenStackProvider,
		newTencentCloudProvider,
		newVultrProvider,
		// Infrastructure Software
		newKubernetesProvider,
		newOctopusDeployProvider,
		newRabbitMQProvider,
		// Network
		newMyrasecProvider,
		newCloudflareProvider,
		// VCS
		newAzureDevOpsProvider,
		newAzureADProvider,
		newGitHubProvider,
		newGitLabProvider,
		// Monitoring & System Management
		newDataDogProvider,
		newNewRelicProvider,
		newPagerDutyProvider,
		newHoneycombioProvider,
		newOpalProvider,
		// Community
		newKeycloakProvider,
		newLogzioProvider,
		newCommercetoolsProvider,
		newMikrotikProvider,
		newXenorchestraProvider,
		newGmailfilterProvider,
		newVaultProvider,
		newOktaProvider,
		newAuth0Provider,
	} {
		list[providerGen().GetName()] = providerGen
	}
	return list
}


================================================
FILE: cmd/version.go
================================================
package cmd

import (
	"fmt"

	"github.com/spf13/cobra"
)

const version = "v0.8.30"

var versionCmd = &cobra.Command{
	Use:   "version",
	Short: "Print the version number of Terraformer",
	Run: func(cmd *cobra.Command, args []string) {
		fmt.Println("Terraformer " + version)
	},
}


================================================
FILE: docs/alicloud.md
================================================

### Use with AliCloud

You can either edit your alicloud config directly, (usually it is `~/.aliyun/config.json`)
or run `aliyun configure` and enter the credentials when prompted.

Example:

```json
{
	"current": "default",
	"profiles": [
		{
			"name": "default",
			"mode": "AK",
			"access_key_id": "LTA***",
			"access_key_secret": "mrZ***",
			"region_id": "cn-hangzhou",
			"output_format": "json",
			"language": "en"
		}
	],
	"meta_path": ""
}
```

Terraformer will pick up the profile name specified in the `--profile` parameter.
It defaults to the first config in the config array.

```sh
terraformer import alicloud --resources=ecs --regions=ap-southeast-3 --profile=default
```

List of supported AliCloud resources:

* `dns`
  * `alicloud_dns`
  * `alicloud_dns_record`
* `ecs`
  * `alicloud_instance`
* `keypair`
  * `alicloud_key_pair`
* `nat`
  * `alicloud_nat_gateway`
* `pvtz`
  * `alicloud_pvtz_zone`
  * `alicloud_pvtz_zone_attachment`
  * `alicloud_pvtz_zone_record`
* `ram`
  * `alicloud_ram_role`
  * `alicloud_ram_role_policy_attachment`
* `rds`
  * `alicloud_db_instance`
* `sg`
  * `alicloud_security_group`
  * `alicloud_security_group_rule`
* `slb`
  * `alicloud_slb`
  * `alicloud_slb_server_group`
  * `alicloud_slb_listener`
* `vpc`
  * `alicloud_vpc`
* `vswitch`
  * `alicloud_vswitch`


================================================
FILE: docs/auth0.md
================================================
### Use with Auth0

Example:

```
$ export AUTH0_DOMAIN=<DOMAIN>
$ export AUTH0_CLIENT_ID=<CLIENT_ID>
$ export AUTH0_CLIENT_SECRET=<CLIENT_SECRET>
$ terraformer import auth0 --resources=auth0_rule,auth0_user
```

List of supported Auth0 services:

* `auth0_action`
* `auth0_branding`
* `auth0_client`
* `auth0_client_grant`
* `auth0_custom_domain`
* `auth0_email`
* `auth0_hook`
* `auth0_log_stream`
* `auth0_prompt`
* `auth0_resource_server`
* `auth0_role`
* `auth0_rule`
* `auth0_rule_config`
* `auth0_tenant`
* `auth0_trigger_binding`
* `auth0_user`


================================================
FILE: docs/aws.md
================================================

### Use with AWS

Example:

```
 terraformer import aws --resources=vpc,subnet --connect=true --regions=eu-west-1 --profile=prod
 terraformer import aws --resources=vpc,subnet --filter=vpc=vpc_id1:vpc_id2:vpc_id3 --regions=eu-west-1
```

#### Profiles support

AWS configuration including environmental variables, shared credentials file (\~/.aws/credentials), and shared config file (\~/.aws/config) will be loaded by the tool by default. To use a specific profile, you can use the following command:

```
terraformer import aws --resources=vpc,subnet --regions=eu-west-1 --profile=prod
```

You can also provide no regions when importing resources:
```
terraformer import aws --resources=cloudfront --profile=prod
```
In that case terraformer will not know with which region resources are associated with and will not assume any region. That scenario is useful in case of global resources (e.g. CloudFront distributions or Route 53 records) and when region is passed implicitly through environmental variables or metadata service.

Examples to import other resources-

 * Security Group-
```
terraformer import aws --resources=sg --regions=us-east-1
```



#### Supported services

*   `accessanalyzer`
    * `aws_accessanalyzer_analyzer`
*   `acm`
    * `aws_acm_certificate`
*   `alb` (supports ALB and NLB)
    * `aws_lb`
    * `aws_lb_listener`
    * `aws_lb_listener_rule`
    * `aws_lb_listener_certificate`
    * `aws_lb_target_group`
    * `aws_lb_target_group_attachment`
*   `api_gateway`
    * `aws_api_gateway_authorizer`
    * `aws_api_gateway_api_key`
    * `aws_api_gateway_documentation_part`
    * `aws_api_gateway_gateway_response`
    * `aws_api_gateway_integration`
    * `aws_api_gateway_integration_response`
    * `aws_api_gateway_method`
    * `aws_api_gateway_method_response`
    * `aws_api_gateway_model`
    * `aws_api_gateway_resource`
    * `aws_api_gateway_rest_api`
    * `aws_api_gateway_stage`
    * `aws_api_gateway_usage_plan`
    * `aws_api_gateway_vpc_link`
*   `appsync`
    * `aws_appsync_graphql_api`
*   `auto_scaling`
    * `aws_autoscaling_group`
    * `aws_launch_configuration`
    * `aws_launch_template`
*   `batch`
    * `aws_batch_compute_environment`
    * `aws_batch_job_definition`
    * `aws_batch_job_queue`
*   `budgets`
    * `aws_budgets_budget`
*   `cloud9`
    * `aws_cloud9_environment_ec2`
*   `cloudformation`
    * `aws_cloudformation_stack`
    * `aws_cloudformation_stack_set`
    * `aws_cloudformation_stack_set_instance`
*   `cloudfront`
    * `aws_cloudfront_distribution`
    * `aws_cloudfront_cache_policy`
*   `cloudhsm`
    * `aws_cloudhsm_v2_cluster`
    * `aws_cloudhsm_v2_hsm`
*   `cloudtrail`
    * `aws_cloudtrail`
*   `cloudwatch`
    * `aws_cloudwatch_dashboard`
    * `aws_cloudwatch_event_rule`
    * `aws_cloudwatch_event_target`
    * `aws_cloudwatch_metric_alarm`
*   `codebuild`
    * `aws_codebuild_project`
*   `codecommit`
    * `aws_codecommit_repository`
*   `codedeploy`
    * `aws_codedeploy_app`
*   `codepipeline`
    * `aws_codepipeline`
    * `aws_codepipeline_webhook`
*   `cognito`
    * `aws_cognito_identity_pool`
    * `aws_cognito_user_pool`
*   `config`
    * `aws_config_config_rule`
    * `aws_config_configuration_recorder`
    * `aws_config_delivery_channel`
*   `customer_gateway`
    * `aws_customer_gateway`
*   `datapipeline`
    * `aws_datapipeline_pipeline`
*   `devicefarm`
    * `aws_devicefarm_project`
*   `docdb`
    * `aws_docdb_cluster`
    * `aws_docdb_cluster_instance`
    * `aws_docdb_cluster_parameter_group`
    * `aws_docdb_subnet_group`
*   `dynamodb`
    * `aws_dynamodb_table`
*   `ebs`
    * `aws_ebs_volume`
    * `aws_volume_attachment`
*   `ec2_instance`
    * `aws_instance`
*   `ecr`
    * `aws_ecr_lifecycle_policy`
    * `aws_ecr_repository`
    * `aws_ecr_repository_policy`
*   `ecrpublic`
    * `aws_ecrpublic_repository`
*   `ecs`
    * `aws_ecs_cluster`
    * `aws_ecs_service`
    * `aws_ecs_task_definition`
*   `efs`
    * `aws_efs_access_point`
    * `aws_efs_file_system`
    * `aws_efs_file_system_policy`
    * `aws_efs_mount_target`
*   `eip`
    * `aws_eip`
*   `eks`
    * `aws_eks_cluster`
    * `aws_eks_node_group`
*   `elasticache`
    * `aws_elasticache_cluster`
    * `aws_elasticache_parameter_group`
    * `aws_elasticache_subnet_group`
    * `aws_elasticache_replication_group`
*   `elastic_beanstalk`
    * `aws_elastic_beanstalk_application`
    * `aws_elastic_beanstalk_environment`
*   `elb`
    * `aws_elb`
*   `emr`
    * `aws_emr_cluster`
    * `aws_emr_security_configuration`
*   `eni`
    * `aws_network_interface`
*   `es`
    * `aws_elasticsearch_domain`
*   `firehose`
    * `aws_kinesis_firehose_delivery_stream`
*   `glue`
    * `aws_glue_crawler`
    * `aws_glue_catalog_database`
    * `aws_glue_catalog_table`
    * `aws_glue_job`
    * `aws_glue_trigger`
*   `iam`
    * `aws_iam_access_key`
    * `aws_iam_group`
    * `aws_iam_group_policy`
    * `aws_iam_group_policy_attachment`
    * `aws_iam_instance_profile`
    * `aws_iam_policy`
    * `aws_iam_role`
    * `aws_iam_role_policy`
    * `aws_iam_role_policy_attachment`
    * `aws_iam_user`
    * `aws_iam_user_group_membership`
    * `aws_iam_user_policy`
    * `aws_iam_user_policy_attachment`
*   `igw`
    * `aws_internet_gateway`
*   `iot`
    * `aws_iot_thing`
    * `aws_iot_thing_type`
    * `aws_iot_topic_rule`
    * `aws_iot_role_alias`
*   `kinesis`
    * `aws_kinesis_stream`
*   `kms`
    * `aws_kms_key`
    * `aws_kms_alias`
    * `aws_kms_grant`
*   `lambda`
    * `aws_lambda_event_source_mapping`
    * `aws_lambda_function`
    * `aws_lambda_function_event_invoke_config`
    * `aws_lambda_layer_version`
    * `aws_lambda_permission`
*   `logs`
    * `aws_cloudwatch_log_group`
*   `media_package`
    * `aws_media_package_channel`
*   `media_store`
    * `aws_media_store_container`
*   `medialive`
    * `aws_medialive_channel`
    * `aws_medialive_input`
    * `aws_medialive_input_security_group`
*   `mq`
    * `aws_mq_broker`
*   `msk`
    * `aws_msk_cluster`
*   `nacl`
    * `aws_network_acl`
*   `nat`
    * `aws_nat_gateway`
*   `opsworks`
    * `aws_opsworks_application`
    * `aws_opsworks_custom_layer`
    * `aws_opsworks_instance`
    * `aws_opsworks_java_app_layer`
    * `aws_opsworks_php_app_layer`
    * `aws_opsworks_rds_db_instance`
    * `aws_opsworks_stack`
    * `aws_opsworks_static_web_layer`
    * `aws_opsworks_user_profile`
*   `organization`
    * `aws_organizations_account`
    * `aws_organizations_organization`
    * `aws_organizations_organizational_unit`
    * `aws_organizations_policy`
    * `aws_organizations_policy_attachment`
*   `qldb`
    * `aws_qldb_ledger`
*   `rds`
    * `aws_db_instance`
    * `aws_db_proxy`
    * `aws_db_cluster`
    * `aws_db_cluster_snapshot`
    * `aws_db_parameter_group`
    * `aws_db_snapshot`
    * `aws_db_subnet_group`
    * `aws_db_option_group`
    * `aws_db_event_subscription`
    * `aws_rds_global_cluster`
*   `redshift`
    * `aws_redshift_cluster`
    * `aws_redshift_event_subscription`
    * `aws_redshift_parameter_group`
    * `aws_redshift_snapshot_schedule`
    * `aws_redshift_snapshot_schedule_association`
    * `aws_redshift_subnet_group`
*   `resourcegroups`
    * `aws_resourcegroups_group`
*   `route53`
    * `aws_route53_zone`
    * `aws_route53_record`
    * `aws_route53_health_check`
*   `route_table`
    * `aws_route_table`
    * `aws_main_route_table_association`
    * `aws_route_table_association`
*   `s3`
    * `aws_s3_bucket`
*   `secretsmanager`
    * `aws_secretsmanager_secret`
*   `securityhub`
    * `aws_securityhub_account`
    * `aws_securityhub_member`
    * `aws_securityhub_standards_subscription`
*   `servicecatalog`
    * `aws_servicecatalog_portfolio`
*   `ses`
    * `aws_ses_configuration_set`
    * `aws_ses_domain_identity`
    * `aws_ses_email_identity`
    * `aws_ses_receipt_rule`
    * `aws_ses_receipt_rule_set`
    * `aws_ses_template`
*   `sfn`
    * `aws_sfn_activity`
    * `aws_sfn_state_machine`
*   `sg`
    * `aws_security_group`
    * `aws_security_group_rule` (if a rule cannot be inlined)
*   `sns`
    * `aws_sns_topic`
    * `aws_sns_topic_subscription`
*   `sqs`
    * `aws_sqs_queue`
*   `ssm`
    * `aws_ssm_parameter`
*   `subnet`
    * `aws_subnet`
*   `swf`
    * `aws_swf_domain`
*   `transit_gateway`
    * `aws_ec2_transit_gateway_route_table`
    * `aws_ec2_transit_gateway_vpc_attachment`
*   `vpc`
    * `aws_vpc`
*   `vpc_endpoint`
    * `aws_vpc_endpoint`
*   `vpc_peering`
    * `aws_vpc_peering_connection`
*   `vpn_connection`
    * `aws_vpn_connection`
*   `vpn_gateway`
    * `aws_vpn_gateway`
*   `waf`
    * `aws_waf_byte_match_set`
    * `aws_waf_geo_match_set`
    * `aws_waf_ipset`
    * `aws_waf_rate_based_rule`
    * `aws_waf_regex_match_set`
    * `aws_waf_regex_pattern_set`
    * `aws_waf_rule`
    * `aws_waf_rule_group`
    * `aws_waf_size_constraint_set`
    * `aws_waf_sql_injection_match_set`
    * `aws_waf_web_acl`
    * `aws_waf_xss_match_set`
*   `waf_regional`
    * `aws_wafregional_byte_match_set`
    * `aws_wafregional_geo_match_set`
    * `aws_wafregional_ipset`
    * `aws_wafregional_rate_based_rule`
    * `aws_wafregional_regex_match_set`
    * `aws_wafregional_regex_pattern_set`
    * `aws_wafregional_rule`
    * `aws_wafregional_rule_group`
    * `aws_wafregional_size_constraint_set`
    * `aws_wafregional_sql_injection_match_set`
    * `aws_wafregional_web_acl`
    * `aws_wafregional_xss_match_set`
*   `wafv2_cloudfront`
    * `aws_wafv2_ip_set`
    * `aws_wafv2_regex_pattern_set`
    * `aws_wafv2_rule_group`
    * `aws_wafv2_web_acl`
    * `aws_wafv2_web_acl_logging_configuration`
*   `wafv2_regional`
    * `aws_wafv2_ip_set`
    * `aws_wafv2_regex_pattern_set`
    * `aws_wafv2_rule_group`
    * `aws_wafv2_web_acl`
    * `aws_wafv2_web_acl_association`
    * `aws_wafv2_web_acl_logging_configuration`
*   `workspaces`
    * `aws_workspaces_directory`
    * `aws_workspaces_ip_group`
    * `aws_workspaces_workspace`
*   `xray`
    * `aws_xray_sampling_rule`

#### Global services

AWS services that are global will be imported without specified region even if several regions will be passed. It is to ensure only one representation of an AWS resource is imported.

List of global AWS services:
*   `budgets`
*   `cloudfront`
*   `ecrpublic`
*   `iam`
*   `organization`
*   `route53`
*   `waf`

#### Attribute filters

Attribute filters allow filtering across different resource types by its attributes.

```
terraformer import aws --resources=ec2_instance,ebs --filter="Name=tags.costCenter;Value=20000:'20001:1'" --regions=eu-west-1
```
Will only import AWS EC2 instances along with EBS volumes annotated with tag `costCenter` with values `20000` or `20001:1`. Attribute filters are by default applicable to all resource types although it's possible to specify to what resource type a given filter should be applicable to by providing `Type=<type>` parameter. For example:
```
terraformer import aws --resources=ec2_instance,ebs --filter=Type=ec2_instance;Name=tags.costCenter;Value=20000:'20001:1' --regions=eu-west-1
```
Will work as same as example above with a change the filter will be applicable only to `ec2_instance` resources.

Few more examples - How to import ec2 instance based on instance name and id
```
terraformer import aws --resources=ec2_instance --filter="Name=tags.Name;Value=Terraformer" --regions=us-east-1
```
This command imports ec2 instance having name as Terraformer.
```
terraformer import aws --resources=ec2_instance --filter="Name=id;Value=i-0xxxxxxxxx" --regions=us-east-1
```
This command imports ec2 instance having instance-id as i-0xxxxxxxxx.

Due to fact API Gateway generates a lot of resources, it's possible to issue a filtering query to retrieve resources related to a given REST API by tags. To fetch resources related to a REST API resource with a tag `STAGE` and value `dev`, add parameter `--filter="Type=api_gateway_rest_api;Name=tags.STAGE;Value=dev"`.

#### SQS queues retrieval

Terraformer uses AWS [ListQueues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ListQueues.html) API call to fetch available queues. The API is able to return only up to 1000 queues and an additional name prefix should be passed to filter the list results. It's possible to pass `QueueNamePrefix` parameter by environmental variable `SQS_PREFIX`.

#### Security groups and rules

Terraformer by default will try to keep rules in security groups as long as no circular dependencies are detected. This approach is implemented to keep the rules as tidy as possible but there can be cases when this behaviour is not desirable (see [GoogleCloudPlatform/terraformer#493](https://github.com/GoogleCloudPlatform/terraformer/issues/493)). To make Terraformer split rules from security groups, add `SPLIT_SG_RULES` environmental variable with any value.


================================================
FILE: docs/azure.md
================================================
# Use with Azure

## Authentication

### Supported Methods

- [Azure CLI](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/azure_cli)
- [managed identities for Azure resources](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/managed_service_identity)
- [Service Principal with Client Certificate](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/service_principal_client_certificate)
- [Service Principal with Client Secret](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/service_principal_client_secret)
- [Service Principal with Open ID Connect](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/service_principal_oidc)

### Examples

``` sh
# Using Azure CLI (az login)
export ARM_SUBSCRIPTION_ID=[SUBSCRIPTION_ID]

# Using Managed identities for Azure resources
export ARM_SUBSCRIPTION_ID=[SUBSCRIPTION_ID]
export ARM_CLIENT_ID=[CLIENT_ID]  # only necessary for user assigned identity
export ARM_TENANT_ID=[TENANT_ID]
export ARM_USE_MSI=true
export ARM_MSI_ENDPOINT=[ARM_MSI_ENDPOINT] # only necessary when the msi endpoint is different than the well-known one

# Using Service Principal with Client Certificate
export ARM_SUBSCRIPTION_ID=[SUBSCRIPTION_ID]
export ARM_CLIENT_ID=[CLIENT_ID] # only necessary for user assigned identity
export ARM_TENANT_ID=[TENANT_ID]
export ARM_CLIENT_CERTIFICATE_PATH="/path/to/my/client/certificate.pfx"
export ARM_CLIENT_CERTIFICATE_PASSWORD=[CLIENT_CERTIFICATE_PASSWORD]

# Using Service Principal with Client Secret
export ARM_SUBSCRIPTION_ID=[SUBSCRIPTION_ID]
export ARM_CLIENT_ID=[CLIENT_ID]
export ARM_TENANT_ID=[TENANT_ID]
export ARM_CLIENT_SECRET=[CLIENT_SECRET]

# Using Service Principal with Open ID Connect
export ARM_SUBSCRIPTION_ID=[SUBSCRIPTION_ID]
export ARM_CLIENT_ID=[CLIENT_ID]
export ARM_TENANT_ID=[TENANT_ID]
export ARM_USE_OIDC=true

# Using deprecated ADAL authentication for throubleshooting
export ARM_USE_ADAL=true

./terraformer import azure -r resource_group
./terraformer import azure -R my_resource_group -r virtual_network,resource_group
./terraformer import azure -r resource_group --filter=resource_group=/subscriptions/<Subscription id>/resourceGroups/<RGNAME>
```

## List of supported Azure resources

*   `analysis`
    * `azurerm_analysis_services_server`
*   `app_service`
    * `azurerm_app_service`
*   `application_gateway`
    * `azurerm_application_gateway`
*   `container`
    * `azurerm_container_group`
    * `azurerm_container_registry`
    * `azurerm_container_registry_webhook`
*   `cosmosdb`
    * `azurerm_cosmosdb_account`
    * `azurerm_cosmosdb_sql_container`
    * `azurerm_cosmosdb_sql_database`
    * `azurerm_cosmosdb_table`
*   `data_factory`
    * `azurerm_data_factory`
    * `azurerm_data_factory_custom_dataset`
    * `azurerm_data_factory_data_flow`
    * `azurerm_data_factory_dataset_azure_blob`
    * `azurerm_data_factory_dataset_binary`
    * `azurerm_data_factory_dataset_cosmosdb_sqlapi`
    * `azurerm_data_factory_dataset_delimited_text`
    * `azurerm_data_factory_dataset_http`
    * `azurerm_data_factory_dataset_json`
    * `azurerm_data_factory_dataset_mysql`
    * `azurerm_data_factory_dataset_parquet`
    * `azurerm_data_factory_dataset_postgresql`
    * `azurerm_data_factory_dataset_snowflake`
    * `azurerm_data_factory_dataset_sql_server_table`
    * `azurerm_data_factory_integration_runtime_azure`
    * `azurerm_data_factory_integration_runtime_azure_ssis`
    * `azurerm_data_factory_integration_runtime_managed`
    * `azurerm_data_factory_integration_runtime_self_hosted`
    * `azurerm_data_factory_linked_custom_service`
    * `azurerm_data_factory_linked_service_azure_blob_storage`
    * `azurerm_data_factory_linked_service_azure_databricks`
    * `azurerm_data_factory_linked_service_azure_file_storage`
    * `azurerm_data_factory_linked_service_azure_function`
    * `azurerm_data_factory_linked_service_azure_search`
    * `azurerm_data_factory_linked_service_azure_sql_database`
    * `azurerm_data_factory_linked_service_azure_table_storage`
    * `azurerm_data_factory_linked_service_cosmosdb`
    * `azurerm_data_factory_linked_service_data_lake_storage_gen2`
    * `azurerm_data_factory_linked_service_key_vault`
    * `azurerm_data_factory_linked_service_kusto`
    * `azurerm_data_factory_linked_service_mysql`
    * `azurerm_data_factory_linked_service_odata`
    * `azurerm_data_factory_linked_service_postgresql`
    * `azurerm_data_factory_linked_service_sftp`
    * `azurerm_data_factory_linked_service_snowflake`
    * `azurerm_data_factory_linked_service_sql_server`
    * `azurerm_data_factory_linked_service_synapse`
    * `azurerm_data_factory_linked_service_web`
    * `azurerm_data_factory_pipeline`
    * `azurerm_data_factory_trigger_blob_event`
    * `azurerm_data_factory_trigger_schedule`
    * `azurerm_data_factory_trigger_tumbling_window`
*   `database`
    * `azurerm_mariadb_configuration`
    * `azurerm_mariadb_database`
    * `azurerm_mariadb_firewall_rule`
    * `azurerm_mariadb_server`
    * `azurerm_mariadb_virtual_network_rule`
    * `azurerm_mysql_configuration`
    * `azurerm_mysql_database`
    * `azurerm_mysql_firewall_rule`
    * `azurerm_mysql_server`
    * `azurerm_mysql_virtual_network_rule`
    * `azurerm_postgresql_configuration`
    * `azurerm_postgresql_database`
    * `azurerm_postgresql_firewall_rule`
    * `azurerm_postgresql_server`
    * `azurerm_postgresql_virtual_network_rule`
    * `azurerm_sql_active_directory_administrator`
    * `azurerm_sql_database`
    * `azurerm_sql_elasticpool`
    * `azurerm_sql_failover_group`
    * `azurerm_sql_firewall_rule`
    * `azurerm_sql_server`
    * `azurerm_sql_virtual_network_rule`
*   `databricks`
    * `azurerm_databricks_workspace`
*   `disk`
    * `azurerm_managed_disk`
*   `dns`
    * `azurerm_dns_a_record`
    * `azurerm_dns_aaaa_record`
    * `azurerm_dns_caa_record`
    * `azurerm_dns_cname_record`
    * `azurerm_dns_mx_record`
    * `azurerm_dns_ns_record`
    * `azurerm_dns_ptr_record`
    * `azurerm_dns_srv_record`
    * `azurerm_dns_txt_record`
    * `azurerm_dns_zone`
*   `eventhub`
    * `azurerm_eventhub`
    * `azurerm_eventhub_consumer_group`
    * `azurerm_eventhub_namespace`
    * `azurerm_eventhub_namespace_authorization_rule`
*   `load_balancer`
    * `azurerm_lb`
    * `azurerm_lb_backend_address_pool`
    * `azurerm_lb_nat_rule`
    * `azurerm_lb_probe`
*   `network_interface`
    * `azurerm_network_interface`
*   `network_security_group`
    * `azurerm_network_security_group`
    * `azurerm_network_security_rule`
*   `network_watcher`
    * `azurerm_network_packet_capture`
    * `azurerm_network_watcher`
    * `azurerm_network_watcher_flow_log`
*   `private_dns`
    * `azurerm_private_dns_a_record`
    * `azurerm_private_dns_aaaa_record`
    * `azurerm_private_dns_cname_record`
    * `azurerm_private_dns_mx_record`
    * `azurerm_private_dns_ptr_record`
    * `azurerm_private_dns_srv_record`
    * `azurerm_private_dns_txt_record`
    * `azurerm_private_dns_zone`
    * `azurerm_private_dns_zone_virtual_network_link`
*   `private_endpoint`
    * `azurerm_private_endpoint`
    * `azurerm_private_link_service`
*   `public_ip`
    * `azurerm_public_ip`
    * `azurerm_public_ip_prefix`
*   `purview`
    * `azurerm_purview_account`
*   `redis`
    * `azurerm_redis_cache`
*   `resource_group`
    * `azurerm_management_lock`
    * `azurerm_resource_group`
*   `route_table`
    * `azurerm_route`
    * `azurerm_route_filter`
    * `azurerm_route_table`
*   `scaleset`
    * `azurerm_virtual_machine_scale_set`
*   `security_center`
    * `azurerm_security_center_contact`
    * `azurerm_security_center_subscription_pricing`
*   `storage_account`
    * `azurerm_storage_account`
    * `azurerm_storage_blob`
    * `azurerm_storage_container`
*   `subnet`
    * `azurerm_subnet`
    * `azurerm_subnet_nat_gateway_association`
    * `azurerm_subnet_network_security_group_association`
    * `azurerm_subnet_route_table_association`
    * `azurerm_subnet_service_endpoint_storage_policy`
*   `synapse`
    * `azurerm_synapse_firewall_rule`
    * `azurerm_synapse_managed_private_endpoint`
    * `azurerm_synapse_private_link_hub`
    * `azurerm_synapse_spark_pool`
    * `azurerm_synapse_sql_pool`
    * `azurerm_synapse_workspace`
*   `virtual_machine`
    * `azurerm_ssh_public_key`
    * `azurerm_virtual_machine`
*   `virtual_network`
    * `azurerm_virtual_network`

## Notes

### Virtual networks and subnets

Terraformer will import `azurerm_virtual_network` config with inlined subnet information swipped, in order to avoid any potential circular dependencies. To import the subnet information, please also import `azurerm_subnet`.


================================================
FILE: docs/azuread.md
================================================
### Use with Azure Active Directory

Example:

```
$ export ARM_TENANT_ID=<TENANT_ID>
$ export ARM_CLIENT_ID=<CLIENT_ID>
$ export ARM_CLIENT_SECRET=<CLIENT_SECRET>
$ terraformer import azuread --resources=user,application
```

List of supported AzureAD services:

*   `app_role_assignment`
    * `azuread_app_role_assignment`
*   `application`
    * `azuread_application`
*   `group`
    * `azuread_group`
*   `service_principal`
    * `azuread_service_principal`
*   `user`
    * `azuread_user`


================================================
FILE: docs/azuredevops.md
================================================
# Use with Azure DevOps

Supports access via [Personal Access Token](https://registry.terraform.io/providers/microsoft/azuredevops/latest/docs/guides/authenticating_using_the_personal_access_token).

## Example

``` sh
export AZDO_ORG_SERVICE_URL="https://dev.azure.com/<Your Org Name>"
export AZDO_PERSONAL_ACCESS_TOKEN="<Personal Access Token>"

./terraformer import azuredevops -r *
./terraformer import azuredevops -r project,git_repository
```

## List of supported Azure DevOps resources

* `git_repository`
  * `azuredevops_git_repository`
* `group`
  * `azuredevops_group`
* `project`
  * `azuredevops_project`

## Notes

Since [Terraform Provider for Azure DevOps](https://github.com/microsoft/terraform-provider-azuredevops) `version 0.17`.


================================================
FILE: docs/cloudflare.md
================================================
### Use with Cloudflare

Example using a Cloudflare API Key and corresponding email:
```
export CLOUDFLARE_API_KEY=[CLOUDFLARE_API_KEY]
export CLOUDFLARE_EMAIL=[CLOUDFLARE_EMAIL]
export CLOUDFLARE_ACCOUNT_ID=[CLOUDFLARE_ACCOUNT_ID]
 ./terraformer import cloudflare --resources=firewall,dns
```

or using a Cloudflare API Token:

```
export CLOUDFLARE_API_TOKEN=[CLOUDFLARE_API_TOKEN]
export CLOUDFLARE_ACCOUNT_ID=[CLOUDFLARE_ACCOUNT_ID]
 ./terraformer import cloudflare --resources=firewall,dns
```

List of supported Cloudflare services:

* `access`
  * `cloudflare_access_application`
* `account_member`
  * `cloudflare_account_member`
* `dns`
  * `cloudflare_record`
  * `cloudflare_zone`
* `firewall`
  * `cloudflare_access_rule`
  * `cloudflare_filter`
  * `cloudflare_firewall_rule`
  * `cloudflare_rate_limit`
  * `cloudflare_zone_lockdown`
* `page_rule`
  * `cloudflare_page_rule`


================================================
FILE: docs/commercetools.md
================================================
### Use with [Commercetools](https://commercetools.com/de/)

This provider use the [terraform-provider-commercetools](https://github.com/labd/terraform-provider-commercetools). The terraformer provider was build by [Dustin Deus](https://github.com/StarpTech).

Example:

Export required variables:

```bash
export CTP_PROJECT_KEY=key
export CTP_CLIENT_ID=foo
export CTP_CLIENT_SECRET=bar
export CTP_CLIENT_SCOPE=scope
```

Export optional variables in case default values are not appropriate:

```bash
export CTP_BASE_URL=base_url # default: https://api.sphere.io
export CTP_TOKEN_URL=token_url # default: https://auth.sphere.io
```

Run terraformer

```bash
./terraformer plan commercetools -r=types # Only planning
./terraformer import commercetools -r=types # Import commercetools types
```

List of supported [commercetools](https://commercetools.com/de/) resources:

- `api_extension`
  - `commercetools_api_extension`
- `channel`
  - `commercetools_channel`
- `custom_object`
  - `commercetools_custom_object`
- `product_type`
  - `commercetools_product_type`
- `shipping_method`
  - `commercetools_shipping_method`
- `shipping_zone`
  - `commercetools_shipping_zone`
- `state`
  - `commercetools_state`
- `store`
  - `commercetools_store`
- `subscription`
  - `commercetools_subscription`
- `tax_category`
  - `commercetools_tax_category`
- `types`
  - `commercetools_type`


================================================
FILE: docs/datadog.md
================================================
# Use Terraformer with [Datadog](https://www.datadoghq.com/)

This provider uses the [terraform-provider-datadog](https://registry.terraform.io/providers/DataDog/datadog/latest).

##  Usage
### 1. Installation
First you will need to install Terraformer with the Datadog provider. See the [README](https://github.com/GoogleCloudPlatform/terraformer#installation).

### 2. Set up a template Terraform workspace
Before you can use Terraformer, you need to create a template workspace so that Terraformer
can access the [DataDog/datadog](https://registry.terraform.io/providers/DataDog/datadog/latest) provider.

To do this, create a new directory with a basic `provider.tf` file:
```hcl
terraform {
  required_providers {
    datadog = {
      source  = "DataDog/datadog"
      version = "3.20.0"
    }
  }
}

provider "datadog" {
  # Configuration options
}
```

then run:
```bash
$ terraform init
````

You should see the output: `Terraform has been successfully initialized!`

### 3. Run Terraformer

```bash
export DATADOG_API_KEY=Datadog API key. More information on this at https://docs.datadoghq.com/account_management/api-app-keys/ 
export DATADOG_HOST=Datadog API host i.e. https://api.datadoghq.eu which can be found at https://docs.datadoghq.com/getting_started/site/#access-the-datadog-site
export DATADOG_APP_KEY=Datadog APP key. More information on this at https://docs.datadoghq.com/account_management/api-app-keys/ 

./terraformer import datadog --resources=* 
```

You can also specify only certain kinds of resources to import as well, i.e. `--resources=dashboard`.

### 4. Inspect the imported Terraform files

You should now see a `generated/` subdirectory with generated files.

You can now initialize and use your new generated resources:
```bash
$ terraform init
$ terraform plan # No changes. Your infrastructure matches the configuration.
```

### Filtering Resources

You can use the `filter` argument to restrict the import of Terraform resources.

Filtering based on Tags follows the convention `--filter="Name=tags;Value='your tag'"`.

```bash
# Import monitors based on multiple tags
./terraformer import datadog --resources=monitor --filter="Name=tags;Value='foo:bar'" --filter="Name=tags;Value='env:production'"

# Import monitor where tag doesn't include colon
./terraformer import datadog --resources=monitor --filter="Name=tags;Value=anExampleTag"
```

Filtering based on resource ID:

```bash
# Import dashboard based on the dashboard ID
./terraformer import datadog --resources=dashboard --filter=dashboard=some-id

# Import based on multiple resource IDs
 ./terraformer import datadog --resources=monitor --filter=monitor=id1:id2:id4
```

Tag filters are order specific. For example, if your monitor has tags (in the order) `atag: atagvalue`, `foo:bar` but you filter for `--filter="Name=tags;Value='foo:bar'" --filter="Name=tags;Value='atag: atagvalue'"`, the monitor would not be imported.

## Supported Datadog resources

*   `dashboard`
    * `datadog_dashboard`
*   `dashboard_json`
    * `datadog_dashboard_json`
*   `dashboard_list`
    * `datadog_dashboard_list`
*   `downtime`
    * `datadog_downtime`
*   `integration_aws`
    * `datadog_integration_aws`
*   `integration_aws_lambda_arn`
    * `datadog_integration_aws_lambda_arn`
*   `integration_aws_log_collection`
    * `datadog_integration_aws_log_collection`
*   `integration_azure`
    * `datadog_integration_azure`
        * **_NOTE:_** Sensitive field `client_secret` is not generated and needs to be manually set
*   `integration_gcp`
    * `datadog_integration_gcp`
        * **_NOTE:_** Sensitive fields `private_key, private_key_id, client_id` is not generated and needs to be manually set
*   `integration_pagerduty`
    * `datadog_integration_pagerduty`
*   `integration_pagerduty_service_object`
    * `datadog_integration_pagerduty_service_object`
*   `integration_slack_channel`
    * `datadog_integration_slack_channel`
        * **_NOTE:_** Importing resource requires resource ID or `account_name` to be passed via [Filter][1] option
*   `logs_archive`
    * `datadog_logs_archive`
*   `logs_archive_order`
    * `datadog_logs_archive_order`
*   `logs_custom_pipeline`
    * `datadog_logs_custom_pipeline`
*   `logs_index`
    * `datadog_logs_index`
*   `logs_index_order`
    * `datadog_logs_index_order`
*   `logs_integration_pipeline`
    * `datadog_logs_integration_pipeline`
*   `logs_pipeline_order`
    * `datadog_logs_pipeline_order`
*   `metric_metadata`
    * `datadog_metric_metadata`
        * **_NOTE:_** Importing resource requires resource ID's to be passed via [Filter][1] option
*   `monitor`
    * `datadog_monitor`
*   `role`
    * `datadog_role`
*   `security_monitoring_default_rule`
    * `datadog_security_monitoring_default_rule`
*   `security_monitoring_rule`
    * `datadog_security_monitoring_rule`
*   `service_level_objective`
    * `datadog_service_level_objective`
*   `synthetics_global_variable`
    * `datadog_synthetics_global_variable`
        * **_NOTE:_** Importing resource requires resource ID's to be passed via [Filter][1] option
*   `synthetics_private_location`
    * `datadog_synthetics_private_location`
*   `synthetics_test`
    * `datadog_synthetics_test`
*   `user`
    * `datadog_user`

[1]: https://github.com/GoogleCloudPlatform/terraformer/blob/master/README.md#filtering


================================================
FILE: docs/digitalocean.md
================================================
### Use with DigitalOcean

Example:

```
export DIGITALOCEAN_TOKEN=[DIGITALOCEAN_TOKEN]
./terraformer import digitalocean -r project,droplet
```

List of supported DigitalOcean resources:

*   `cdn`
    * `digitalocean_cdn`
*   `certificate`
    * `digitalocean_certificate`
*   `database_cluster`
    * `digitalocean_database_cluster`
    * `digitalocean_database_connection_pool`
    * `digitalocean_database_db`
    * `digitalocean_database_replica`
    * `digitalocean_database_user`
*   `domain`
    * `digitalocean_domain`
    * `digitalocean_record`
*   `droplet`
    * `digitalocean_droplet`
*   `droplet_snapshot`
    * `digitalocean_droplet_snapshot`
*   `firewall`
    * `digitalocean_firewall`
*   `floating_ip`
    * `digitalocean_floating_ip`
*   `kubernetes_cluster`
    * `digitalocean_kubernetes_cluster`
    * `digitalocean_kubernetes_node_pool`
*   `loadbalancer`
    * `digitalocean_loadbalancer`
*   `project`
    * `digitalocean_project`
*   `ssh_key`
    * `digitalocean_ssh_key`
*   `tag`
    * `digitalocean_tag`
*   `volume`
    * `digitalocean_volume`
*   `volume_snapshot`
    * `digitalocean_volume_snapshot`
*   `vpc`
    * `digitalocean_vpc`


================================================
FILE: docs/equinixmetal.md
================================================
### Use with Equinix Metal

Example:

```
export METAL_AUTH_TOKEN=[METAL_AUTH_TOKEN]
export PACKET_PROJECT_ID=[PROJECT_ID]
./terraformer import metal -r volume,device
```

List of supported Equinix Metal resources:

*   `device`
    * `metal_device`
*   `spotmarketrequest`
    * `metal_spot_market_request`
*   `sshkey`
    * `metal_ssh_key`
*   `volume`
    * `metal_volume`


================================================
FILE: docs/fastly.md
================================================
### Use with Fastly

Example:

```
export FASTLY_API_KEY=[FASTLY_API_KEY]
export FASTLY_CUSTOMER_ID=[FASTLY_CUSTOMER_ID]
./terraformer import fastly -r service_v1,user
```

List of supported Fastly resources:

*   `service_v1`
    * `fastly_service_acl_entries_v1`
    * `fastly_service_compute`
    * `fastly_service_dictionary_items_v1`
    * `fastly_service_dynamic_snippet_content_v1`
    * `fastly_service_v1`
*   `tls_subscription`
    * `fastly_tls_subscription`
*   `user`
    * `fastly_user_v1`


================================================
FILE: docs/gcp.md
================================================
### Use with GCP

In order to access the information from your Google Project, you need to provide authentication credentials
by setting up the environment variable `GOOGLE_APPLICATION_CREDENTIALS` with the file path of the JSON
file that contains your service account key. 

[![asciicast](https://asciinema.org/a/243961.svg)](https://asciinema.org/a/243961)

Example:

```
terraformer import google --resources=gcs,forwardingRules,httpHealthChecks --connect=true --regions=europe-west1,europe-west4 --projects=aaa,fff
terraformer import google --resources=gcs,forwardingRules,httpHealthChecks --filter=compute_firewall=rule1:rule2:rule3 --regions=europe-west1 --projects=aaa,fff
```

For google-beta provider:

```
terraformer import google --resources=gcs,forwardingRules,httpHealthChecks --regions=europe-west4 --projects=aaa --provider-type beta
```

List of supported GCP services:

*   `addresses`
    * `google_compute_address`
*   `autoscalers`
    * `google_compute_autoscaler`
*   `backendBuckets`
    * `google_compute_backend_bucket`
*   `backendServices`
    * `google_compute_backend_service`
*   `bigQuery`
    * `google_bigquery_dataset`
    * `google_bigquery_table`
*   `cloudFunctions`
    * `google_cloudfunctions_function`
    * `google_cloudfunctions2_function`
*   `cloudbuild`
    * `google_cloudbuild_trigger`
*   `cloudsql`
    * `google_sql_database`
    * `google_sql_database_instance`
*   `dataProc`
    * `google_dataproc_cluster`
*   `disks`
    * `google_compute_disk`
*   `dns`
    * `google_dns_managed_zone`
    * `google_dns_record_set`
*   `externalVpnGateways`
    * `google_compute_external_vpn_gateway`
*   `firewall`
    * `google_compute_firewall`
*   `forwardingRules`
    * `google_compute_forwarding_rule`
*   `gcs`
    * `google_storage_bucket`
    * `google_storage_bucket_acl`
    * `google_storage_bucket_iam_binding`
    * `google_storage_bucket_iam_member`
    * `google_storage_bucket_iam_policy`
    * `google_storage_default_object_acl`
    * `google_storage_notification`
*   `gke`
    * `google_container_cluster`
    * `google_container_node_pool`
*   `globalAddresses`
    * `google_compute_global_address`
*   `globalForwardingRules`
    * `google_compute_global_forwarding_rule`
*   `healthChecks`
    * `google_compute_health_check`
*   `httpHealthChecks`
    * `google_compute_http_health_check`
*   `httpsHealthChecks`
    * `google_compute_https_health_check`
*   `iam`
    * `google_project_iam_custom_role`
    * `google_project_iam_member`
    * `google_service_account`
*   `images`
    * `google_compute_image`
*   `instanceGroupManagers`
    * `google_compute_instance_group_manager`
*   `instanceGroups`
    * `google_compute_instance_group`
*   `instanceTemplates`
    * `google_compute_instance_template`
*   `instances`
    * `google_compute_instance`
*   `interconnectAttachments`
    * `google_compute_interconnect_attachment`
*   `kms`
    * `google_kms_crypto_key`
    * `google_kms_key_ring`
*   `logging`
    * `google_logging_metric`
*   `memoryStore`
    * `google_redis_instance`
*   `monitoring`
    * `google_monitoring_alert_policy`
    * `google_monitoring_group`
    * `google_monitoring_notification_channel`
    * `google_monitoring_uptime_check_config`
*   `networks`
    * `google_compute_network`
*   `nodeGroups`
    * `google_compute_node_group`
*   `nodeTemplates`
    * `google_compute_node_template`
*   `packetMirrorings`
    * `google_compute_packet_mirroring`
*   `project`
    * `google_project`
*   `pubsub`
    * `google_pubsub_subscription`
    * `google_pubsub_topic`
*   `regionAutoscalers`
    * `google_compute_region_autoscaler`
*   `regionBackendServices`
    * `google_compute_region_backend_service`
*   `regionDisks`
    * `google_compute_region_disk`
*   `regionHealthChecks`
    * `google_compute_region_health_check`
*   `regionInstanceGroupManagers`
    * `google_compute_region_instance_group_manager`
*   `regionInstanceGroups`
    * `google_compute_region_instance_group`
*   `regionSslCertificates`
    * `google_compute_region_ssl_certificate`
*   `regionTargetHttpProxies`
    * `google_compute_region_target_http_proxy`
*   `regionTargetHttpsProxies`
    * `google_compute_region_target_https_proxy`
*   `regionUrlMaps`
    * `google_compute_region_url_map`
*   `reservations`
    * `google_compute_reservation`
*   `resourcePolicies`
    * `google_compute_resource_policy`
*   `routers`
    * `google_compute_router`
*   `routes`
    * `google_compute_route`
*   `schedulerJobs`
    * `google_cloud_scheduler_job`
*   `securityPolicies`
    * `google_compute_security_policy`
*   `sslCertificates`
    * `google_compute_managed_ssl_certificate`
*   `sslPolicies`
    * `google_compute_ssl_policy`
*   `subnetworks`
    * `google_compute_subnetwork`
*   `targetHttpProxies`
    * `google_compute_target_http_proxy`
*   `targetHttpsProxies`
    * `google_compute_target_https_proxy`
*   `targetInstances`
    * `google_compute_target_instance`
*   `targetPools`
    * `google_compute_target_pool`
*   `targetSslProxies`
    * `google_compute_target_ssl_proxy`
*   `targetTcpProxies`
    * `google_compute_target_tcp_proxy`
*   `targetVpnGateways`
    * `google_compute_vpn_gateway`
*   `urlMaps`
    * `google_compute_url_map`
*   `vpnTunnels`
    * `google_compute_vpn_tunnel`

Your `tf` and `tfstate` files are written by default to
`generated/gcp/zone/service`.


================================================
FILE: docs/github.md
================================================
### Use with GitHub

Example:

```
 ./terraformer import github --owner=YOUR_ORGANIZATION --resources=repositories --token=YOUR_TOKEN // or GITHUB_TOKEN in env
 ./terraformer import github --owner=YOUR_ORGANIZATION --resources=repositories --filter=repository=id1:id2:id4 --token=YOUR_TOKEN // or GITHUB_TOKEN in env

  ./terraformer import github --owner=YOUR_ORGANIZATION --resources=repositories --base-url=https://your-enterprise-github-url
```

Supports only organizational resources. List of supported resources:

*   `members`
    * `github_membership`
*   `organization_blocks`
    * `github_organization_block`
*   `organization_projects`
    * `github_organization_project`
*   `organization_webhooks`
    * `github_organization_webhook`
*   `repositories`
    * `github_branch_protection`
    * `github_repository`
    * `github_repository_collaborator`
    * `github_repository_deploy_key`
    * `github_repository_webhook`
*   `teams`
    * `github_team`
    * `github_team_membership`
    * `github_team_repository`
*   `user_ssh_keys`
    * `github_user_ssh_key`

Notes:
* Terraformer can't get webhook secrets from the GitHub API. If you use a secret token in any of your webhooks, running `terraform plan` will result in a change being detected:
=> `configuration.#: "1" => "0"` in tfstate only.


=================
Download .txt
gitextract_61d3pq2n/

├── .github/
│   ├── dependabot.yml
│   └── workflows/
│       ├── linter.yml
│       ├── release.yaml
│       ├── stale.yaml
│       └── test.yml
├── .gitignore
├── .golangci.json
├── AUTHORS
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── SECURITY.md
├── build/
│   ├── main.go
│   └── multi-build/
│       └── main.go
├── cmd/
│   ├── import.go
│   ├── plan.go
│   ├── provider_cmd_alicloud.go
│   ├── provider_cmd_auth0.go
│   ├── provider_cmd_aws.go
│   ├── provider_cmd_azure.go
│   ├── provider_cmd_azuread.go
│   ├── provider_cmd_azuredevops.go
│   ├── provider_cmd_cloudflare.go
│   ├── provider_cmd_commercetools.go
│   ├── provider_cmd_datadog.go
│   ├── provider_cmd_digitalocean.go
│   ├── provider_cmd_equinixmetal.go
│   ├── provider_cmd_fastly.go
│   ├── provider_cmd_github.go
│   ├── provider_cmd_gitlab.go
│   ├── provider_cmd_gmailfilter.go
│   ├── provider_cmd_google.go
│   ├── provider_cmd_grafana.go
│   ├── provider_cmd_heroku.go
│   ├── provider_cmd_honeycombio.go
│   ├── provider_cmd_ibm.go
│   ├── provider_cmd_ionoscloud.go
│   ├── provider_cmd_keycloak.go
│   ├── provider_cmd_kubernetes.go
│   ├── provider_cmd_launchdarkly.go
│   ├── provider_cmd_linode.go
│   ├── provider_cmd_logzio.go
│   ├── provider_cmd_mackerel.go
│   ├── provider_cmd_mikrotik.go
│   ├── provider_cmd_myrasec.go
│   ├── provider_cmd_newrelic.go
│   ├── provider_cmd_ns1.go
│   ├── provider_cmd_octopusdeploy.go
│   ├── provider_cmd_okta.go
│   ├── provider_cmd_opal.go
│   ├── provider_cmd_openstack.go
│   ├── provider_cmd_opsgenie.go
│   ├── provider_cmd_pagerduty.go
│   ├── provider_cmd_panos.go
│   ├── provider_cmd_rabbitmq.go
│   ├── provider_cmd_tencentcloud.go
│   ├── provider_cmd_vault.go
│   ├── provider_cmd_vultr.go
│   ├── provider_cmd_xenorchestra.go
│   ├── provider_cmd_yandex.go
│   ├── root.go
│   └── version.go
├── docs/
│   ├── alicloud.md
│   ├── auth0.md
│   ├── aws.md
│   ├── azure.md
│   ├── azuread.md
│   ├── azuredevops.md
│   ├── cloudflare.md
│   ├── commercetools.md
│   ├── datadog.md
│   ├── digitalocean.md
│   ├── equinixmetal.md
│   ├── fastly.md
│   ├── gcp.md
│   ├── github.md
│   ├── gitlab.md
│   ├── gmailfilter.md
│   ├── grafana.md
│   ├── heroku.md
│   ├── honeycombio.md
│   ├── ibmcloud.md
│   ├── ionoscloud.md
│   ├── keycloak.md
│   ├── kubernetes.md
│   ├── launchdarkly.md
│   ├── linode.md
│   ├── logz.md
│   ├── mackerel.md
│   ├── mikrotik.md
│   ├── myrasec.md
│   ├── ns1.md
│   ├── octopus.md
│   ├── okta.md
│   ├── opal.md
│   ├── openstack.md
│   ├── opsgenie.md
│   ├── pagerduty.md
│   ├── panos.md
│   ├── rabbitmq.md
│   ├── relic.md
│   ├── tencentcloud.md
│   ├── vault.md
│   ├── vultr.md
│   ├── xen.md
│   └── yandex.md
├── go.mod
├── go.sum
├── main.go
├── providers/
│   ├── alicloud/
│   │   ├── alicloud_provider.go
│   │   ├── alicloud_service.go
│   │   ├── connectivity/
│   │   │   ├── client.go
│   │   │   ├── config.go
│   │   │   ├── endpoint.go
│   │   │   └── regions.go
│   │   ├── dns.go
│   │   ├── ecs.go
│   │   ├── key_pair.go
│   │   ├── nat_gateway.go
│   │   ├── pvtz.go
│   │   ├── ram.go
│   │   ├── rds.go
│   │   ├── sg.go
│   │   ├── slb.go
│   │   ├── vpc.go
│   │   └── vswitch.go
│   ├── auth0/
│   │   ├── action.go
│   │   ├── auth0_provider.go
│   │   ├── auth0_service.go
│   │   ├── branding.go
│   │   ├── client.go
│   │   ├── client_grant.go
│   │   ├── custom_domain.go
│   │   ├── email.go
│   │   ├── hook.go
│   │   ├── log_stream.go
│   │   ├── prompt.go
│   │   ├── resource_server.go
│   │   ├── role.go
│   │   ├── rule.go
│   │   ├── rule_config.go
│   │   ├── tenant.go
│   │   ├── trigger_binding.go
│   │   └── user.go
│   ├── aws/
│   │   ├── accessanalyzer.go
│   │   ├── acm.go
│   │   ├── alb.go
│   │   ├── api_gateway.go
│   │   ├── api_gatewayv2.go
│   │   ├── appsync.go
│   │   ├── autoscaling.go
│   │   ├── aws_facade.go
│   │   ├── aws_provider.go
│   │   ├── aws_service.go
│   │   ├── batch.go
│   │   ├── budgets.go
│   │   ├── cloud9.go
│   │   ├── cloud_front.go
│   │   ├── cloudformation.go
│   │   ├── cloudhsm.go
│   │   ├── cloudtrail.go
│   │   ├── cloudwatch.go
│   │   ├── codebuild.go
│   │   ├── codecommit.go
│   │   ├── codedeploy.go
│   │   ├── codepipeline.go
│   │   ├── cognito.go
│   │   ├── config.go
│   │   ├── customer_gateway.go
│   │   ├── datapipeline.go
│   │   ├── devicefarm.go
│   │   ├── docdb.go
│   │   ├── dx.go
│   │   ├── dynamodb.go
│   │   ├── ebs.go
│   │   ├── ec2.go
│   │   ├── ecr.go
│   │   ├── ecrpublic.go
│   │   ├── ecs.go
│   │   ├── efs.go
│   │   ├── eip.go
│   │   ├── eks.go
│   │   ├── elastic_beanstalk.go
│   │   ├── elasticache.go
│   │   ├── elb.go
│   │   ├── emr.go
│   │   ├── eni.go
│   │   ├── es.go
│   │   ├── firehose.go
│   │   ├── glue.go
│   │   ├── iam.go
│   │   ├── identitystore.go
│   │   ├── igw.go
│   │   ├── iot.go
│   │   ├── kinesis.go
│   │   ├── kms.go
│   │   ├── lambda.go
│   │   ├── logs.go
│   │   ├── media_package.go
│   │   ├── media_store.go
│   │   ├── medialive.go
│   │   ├── mq.go
│   │   ├── msk.go
│   │   ├── nacl.go
│   │   ├── nat_gateway.go
│   │   ├── opsworks.go
│   │   ├── organization.go
│   │   ├── qldb.go
│   │   ├── rds.go
│   │   ├── redshift.go
│   │   ├── resourcegroups.go
│   │   ├── route53.go
│   │   ├── route_table.go
│   │   ├── s3.go
│   │   ├── secretsmanager.go
│   │   ├── securityhub.go
│   │   ├── servicecatalog.go
│   │   ├── ses.go
│   │   ├── sfn.go
│   │   ├── sg.go
│   │   ├── sg_test.go
│   │   ├── sns.go
│   │   ├── sqs.go
│   │   ├── ssm.go
│   │   ├── subnet.go
│   │   ├── swf.go
│   │   ├── transit_gateway.go
│   │   ├── vgw.go
│   │   ├── vpc.go
│   │   ├── vpc_endpoint.go
│   │   ├── vpc_peering.go
│   │   ├── vpn_connection.go
│   │   ├── waf.go
│   │   ├── waf_regional.go
│   │   ├── wafv2.go
│   │   ├── workspaces.go
│   │   └── xray.go
│   ├── azure/
│   │   ├── analysis.go
│   │   ├── app_service.go
│   │   ├── application_gateway.go
│   │   ├── azure_provider.go
│   │   ├── azure_service.go
│   │   ├── container.go
│   │   ├── cosmosdb.go
│   │   ├── data_factory.go
│   │   ├── database.go
│   │   ├── databricks.go
│   │   ├── disk.go
│   │   ├── dns.go
│   │   ├── eventhub.go
│   │   ├── helper.go
│   │   ├── keyvault.go
│   │   ├── load_balancer.go
│   │   ├── management_lock.go
│   │   ├── network_interface.go
│   │   ├── network_security_group.go
│   │   ├── network_watcher.go
│   │   ├── private_dns.go
│   │   ├── private_endpoint.go
│   │   ├── public_ip.go
│   │   ├── purview.go
│   │   ├── redis.go
│   │   ├── resource_group.go
│   │   ├── route_table.go
│   │   ├── scaleset.go
│   │   ├── security_center_contact.go
│   │   ├── security_center_subscription_pricing.go
│   │   ├── ssh_public_key.go
│   │   ├── storage_account.go
│   │   ├── storage_blob.go
│   │   ├── storage_container.go
│   │   ├── subnet.go
│   │   ├── synapse.go
│   │   ├── virtual_machine.go
│   │   └── virtual_network.go
│   ├── azuread/
│   │   ├── app_role_assignment.go
│   │   ├── application.go
│   │   ├── azuread_provider.go
│   │   ├── azuread_service.go
│   │   ├── group.go
│   │   ├── service_principal.go
│   │   └── user.go
│   ├── azuredevops/
│   │   ├── azuredevops_provider.go
│   │   ├── azuredevops_service.go
│   │   ├── git_repository.go
│   │   ├── group.go
│   │   ├── helpers.go
│   │   └── project.go
│   ├── cloudflare/
│   │   ├── access.go
│   │   ├── account_member.go
│   │   ├── cloudflare_provider.go
│   │   ├── cloudflare_service.go
│   │   ├── dns.go
│   │   ├── firewall.go
│   │   └── page_rule.go
│   ├── commercetools/
│   │   ├── api_extension.go
│   │   ├── channel.go
│   │   ├── commercetools_provider.go
│   │   ├── commercetools_service.go
│   │   ├── connectivity/
│   │   │   ├── client.go
│   │   │   └── config.go
│   │   ├── custom_object.go
│   │   ├── helpers.go
│   │   ├── product_type.go
│   │   ├── shipping_method.go
│   │   ├── shipping_zone.go
│   │   ├── state.go
│   │   ├── store.go
│   │   ├── subscription.go
│   │   ├── tax_category.go
│   │   └── types.go
│   ├── datadog/
│   │   ├── dashboard.go
│   │   ├── dashboard_json.go
│   │   ├── dashboard_list.go
│   │   ├── datadog_provider.go
│   │   ├── datadog_service.go
│   │   ├── downtime.go
│   │   ├── integration_aws.go
│   │   ├── integration_aws_lambda_arn.go
│   │   ├── integration_aws_log_collection.go
│   │   ├── integration_azure.go
│   │   ├── integration_gcp.go
│   │   ├── integration_pagerduty.go
│   │   ├── integration_pagerduty_service_object.go
│   │   ├── integration_slack_channel.go
│   │   ├── logs_archive.go
│   │   ├── logs_archive_order.go
│   │   ├── logs_custom_pipeline.go
│   │   ├── logs_index.go
│   │   ├── logs_index_order.go
│   │   ├── logs_integration_pipeline.go
│   │   ├── logs_metric.go
│   │   ├── logs_pipeline_order.go
│   │   ├── metric_metadata.go
│   │   ├── monitor.go
│   │   ├── role.go
│   │   ├── security_monitoring_default_rule.go
│   │   ├── security_monitoring_rule.go
│   │   ├── service_level_objective.go
│   │   ├── synthetics_global_variable.go
│   │   ├── synthetics_private_location.go
│   │   ├── synthetics_test_.go
│   │   └── user.go
│   ├── digitalocean/
│   │   ├── cdn.go
│   │   ├── certificate.go
│   │   ├── database_cluster.go
│   │   ├── digitalocean_provider.go
│   │   ├── digitalocean_service.go
│   │   ├── domain.go
│   │   ├── droplet.go
│   │   ├── droplet_snapshot.go
│   │   ├── firewall.go
│   │   ├── floating_ip.go
│   │   ├── kubernetes_cluster.go
│   │   ├── loadbalancer.go
│   │   ├── project.go
│   │   ├── ssh_key.go
│   │   ├── tag.go
│   │   ├── token_source.go
│   │   ├── volume.go
│   │   ├── volume_snapshot.go
│   │   └── vpc.go
│   ├── equinixmetal/
│   │   ├── device.go
│   │   ├── equinixmetal_provider.go
│   │   ├── equinixmetal_service.go
│   │   ├── spot_market_request.go
│   │   ├── ssh_key.go
│   │   └── volume.go
│   ├── fastly/
│   │   ├── fastly_provider.go
│   │   ├── fastly_service.go
│   │   ├── service_v1.go
│   │   ├── tls_subscription.go
│   │   └── user.go
│   ├── gcp/
│   │   ├── addresses_gen.go
│   │   ├── autoscalers_gen.go
│   │   ├── backendBuckets_gen.go
│   │   ├── backendServices_gen.go
│   │   ├── bigquery.go
│   │   ├── cloudFunctions.go
│   │   ├── cloudbuild.go
│   │   ├── clouddns.go
│   │   ├── cloudsql.go
│   │   ├── cloudtasks.go
│   │   ├── compute.go
│   │   ├── dataproc.go
│   │   ├── disks_gen.go
│   │   ├── externalVpnGateways_gen.go
│   │   ├── firewall_gen.go
│   │   ├── forwardingRules_gen.go
│   │   ├── gcp_compute_code_generator/
│   │   │   ├── backendServices.go
│   │   │   ├── basicGcpResource.go
│   │   │   ├── globalForwardingRules.go
│   │   │   ├── instanceGroupManagers.go
│   │   │   ├── main.go
│   │   │   └── resources.go
│   │   ├── gcp_facade.go
│   │   ├── gcp_provider.go
│   │   ├── gcp_service.go
│   │   ├── gcs.go
│   │   ├── gke.go
│   │   ├── globalAddresses_gen.go
│   │   ├── globalForwardingRules_gen.go
│   │   ├── healthChecks_gen.go
│   │   ├── httpHealthChecks_gen.go
│   │   ├── httpsHealthChecks_gen.go
│   │   ├── iam.go
│   │   ├── images_gen.go
│   │   ├── instanceGroupManagers_gen.go
│   │   ├── instanceGroups_gen.go
│   │   ├── instanceTemplates_gen.go
│   │   ├── instances.go
│   │   ├── interconnectAttachments_gen.go
│   │   ├── kms.go
│   │   ├── logging.go
│   │   ├── memoryStore.go
│   │   ├── monitoring.go
│   │   ├── networkEndpointGroups_gen.go
│   │   ├── networks_gen.go
│   │   ├── nodeGroups_gen.go
│   │   ├── nodeTemplates_gen.go
│   │   ├── packetMirrorings_gen.go
│   │   ├── project.go
│   │   ├── pubsub.go
│   │   ├── regionAutoscalers_gen.go
│   │   ├── regionBackendServices_gen.go
│   │   ├── regionDisks_gen.go
│   │   ├── regionHealthChecks_gen.go
│   │   ├── regionInstanceGroupManagers_gen.go
│   │   ├── regionInstanceGroups_gen.go
│   │   ├── regionSslCertificates_gen.go
│   │   ├── regionTargetHttpProxies_gen.go
│   │   ├── regionTargetHttpsProxies_gen.go
│   │   ├── regionUrlMaps_gen.go
│   │   ├── reservations_gen.go
│   │   ├── resourcePolicies_gen.go
│   │   ├── routers_gen.go
│   │   ├── routes_gen.go
│   │   ├── schedulerJobs.go
│   │   ├── securityPolicies_gen.go
│   │   ├── sslCertificates_gen.go
│   │   ├── sslPolicies_gen.go
│   │   ├── subnetworks_gen.go
│   │   ├── targetHttpProxies_gen.go
│   │   ├── targetHttpsProxies_gen.go
│   │   ├── targetInstances_gen.go
│   │   ├── targetPools_gen.go
│   │   ├── targetSslProxies_gen.go
│   │   ├── targetTcpProxies_gen.go
│   │   ├── targetVpnGateways_gen.go
│   │   ├── urlMaps_gen.go
│   │   └── vpnTunnels_gen.go
│   ├── github/
│   │   ├── github_organization.go
│   │   ├── github_provider.go
│   │   ├── github_service.go
│   │   ├── members.go
│   │   ├── organizationWebhooks.go
│   │   ├── organization_block.go
│   │   ├── organization_project.go
│   │   ├── repositories.go
│   │   ├── teams.go
│   │   └── user_ssh_keys.go
│   ├── gitlab/
│   │   ├── gitlab_provider.go
│   │   ├── gitlab_service.go
│   │   ├── group.go
│   │   └── project.go
│   ├── gmailfilter/
│   │   ├── filter.go
│   │   ├── gmailfilter_provider.go
│   │   ├── gmailfilter_service.go
│   │   └── label.go
│   ├── grafana/
│   │   ├── dashboard.go
│   │   ├── folder.go
│   │   ├── grafana_provider.go
│   │   └── grafana_service.go
│   ├── heroku/
│   │   ├── account_feature.go
│   │   ├── app.go
│   │   ├── heroku_provider.go
│   │   ├── heroku_service.go
│   │   ├── pipeline.go
│   │   ├── pipeline_coupling.go
│   │   ├── team_collaborator.go
│   │   └── team_member.go
│   ├── honeycombio/
│   │   ├── board.go
│   │   ├── burn_alert.go
│   │   ├── column.go
│   │   ├── dataset.go
│   │   ├── derived_column.go
│   │   ├── honeycomb_provider.go
│   │   ├── honeycomb_service.go
│   │   ├── query.go
│   │   ├── query_annotation.go
│   │   ├── slo.go
│   │   └── trigger.go
│   ├── ibm/
│   │   ├── cis.go
│   │   ├── cloud_functions.go
│   │   ├── cloud_log_analysis.go
│   │   ├── cloud_log_atracker.go
│   │   ├── cloud_monitoring.go
│   │   ├── cloud_watson_machine_learning.go
│   │   ├── cloud_watson_studio.go
│   │   ├── container_cluster.go
│   │   ├── continuous_delivery.go
│   │   ├── cos.go
│   │   ├── database_elasticsearch.go
│   │   ├── database_etcd.go
│   │   ├── database_mongo.go
│   │   ├── database_postgresql.go
│   │   ├── database_rabbitmq.go
│   │   ├── database_redis.go
│   │   ├── helpers.go
│   │   ├── iam.go
│   │   ├── ibm_cd_toolchain.go
│   │   ├── ibm_certificate_manager.go
│   │   ├── ibm_cloudant.go
│   │   ├── ibm_code_engine.go
│   │   ├── ibm_dl.go
│   │   ├── ibm_is_floating_ip.go
│   │   ├── ibm_is_flow_log.go
│   │   ├── ibm_is_ike_policy.go
│   │   ├── ibm_is_image.go
│   │   ├── ibm_is_instance.go
│   │   ├── ibm_is_instance_template.go
│   │   ├── ibm_is_ipsec_policy.go
│   │   ├── ibm_is_lb.go
│   │   ├── ibm_is_network_acl.go
│   │   ├── ibm_is_public_gateway.go
│   │   ├── ibm_is_security_group.go
│   │   ├── ibm_is_ssh_key.go
│   │   ├── ibm_is_subnet.go
│   │   ├── ibm_is_virtual_endpoint_gateway.go
│   │   ├── ibm_is_volume.go
│   │   ├── ibm_is_vpc.go
│   │   ├── ibm_is_vpc_address_prefix.go
│   │   ├── ibm_is_vpc_route.go
│   │   ├── ibm_is_vpc_routing_table.go
│   │   ├── ibm_is_vpn_gateway.go
│   │   ├── ibm_kp.go
│   │   ├── ibm_private_dns.go
│   │   ├── ibm_provider.go
│   │   ├── ibm_secret_manager.go
│   │   ├── ibm_service.go
│   │   ├── ibm_tg.go
│   │   ├── instance_groups.go
│   │   ├── satellite_control_plane.go
│   │   ├── satellite_data_plane.go
│   │   ├── utils.go
│   │   └── vpc_cluster.go
│   ├── ionoscloud/
│   │   ├── application_load_balancer.go
│   │   ├── application_load_balancer_forwarding_rule.go
│   │   ├── backup_unit.go
│   │   ├── certificate.go
│   │   ├── container_registry.go
│   │   ├── container_registry_token.go
│   │   ├── datacenter.go
│   │   ├── dataplatform_cluster.go
│   │   ├── dataplatform_node_pool.go
│   │   ├── dbaas_mongo_cluster.go
│   │   ├── dbaas_mongo_user.go
│   │   ├── dbaas_pgsql_cluster.go
│   │   ├── dbaas_pgsql_database.go
│   │   ├── dbaas_pgsql_user.go
│   │   ├── dns_record.go
│   │   ├── dns_zone.go
│   │   ├── firewall.go
│   │   ├── group.go
│   │   ├── helpers/
│   │   │   ├── constants.go
│   │   │   └── helper_dependencies_list.go
│   │   ├── ionoscloud_provider.go
│   │   ├── ionoscloud_service.go
│   │   ├── ip_block.go
│   │   ├── ipfailover.go
│   │   ├── kubernetes_cluster.go
│   │   ├── kubernetes_node_pool.go
│   │   ├── lan.go
│   │   ├── load_balancer.go
│   │   ├── logging_pipeline.go
│   │   ├── nat_gateway.go
│   │   ├── nat_gateway_rule.go
│   │   ├── network_load_balancer.go
│   │   ├── network_load_balancer_forwarding_rule.go
│   │   ├── nic.go
│   │   ├── private_crossconnect.go
│   │   ├── s3_key.go
│   │   ├── server.go
│   │   ├── share.go
│   │   ├── target_group.go
│   │   ├── user.go
│   │   └── volume.go
│   ├── keycloak/
│   │   ├── authentication.go
│   │   ├── generator.go
│   │   ├── group.go
│   │   ├── helpers.go
│   │   ├── keycloak_provider.go
│   │   ├── keycloak_service.go
│   │   ├── openid_client.go
│   │   ├── realm.go
│   │   ├── role.go
│   │   ├── scope.go
│   │   └── user.go
│   ├── kubernetes/
│   │   ├── kind.go
│   │   ├── kubernetes_provider.go
│   │   ├── kubernetes_service.go
│   │   └── utils.go
│   ├── launchdarkly/
│   │   ├── feature_flags.go
│   │   ├── launchdarkly_provider.go
│   │   ├── launchdarkly_service.go
│   │   ├── project.go
│   │   └── segment.go
│   ├── linode/
│   │   ├── domain.go
│   │   ├── image.go
│   │   ├── instance.go
│   │   ├── linode_provider.go
│   │   ├── linode_service.go
│   │   ├── nodebalancer.go
│   │   ├── rdns.go
│   │   ├── sshkey.go
│   │   ├── stackscript.go
│   │   ├── token.go
│   │   └── volume.go
│   ├── logzio/
│   │   ├── alert_notification_endpoints.go
│   │   ├── alerts.go
│   │   ├── logzio_provider.go
│   │   └── logzio_service.go
│   ├── mackerel/
│   │   ├── alert_group_setting.go
│   │   ├── aws_integration.go
│   │   ├── channel.go
│   │   ├── downtime.go
│   │   ├── mackerel_provider.go
│   │   ├── mackerel_service.go
│   │   ├── monitor.go
│   │   ├── notification_group.go
│   │   ├── role.go
│   │   └── service.go
│   ├── mikrotik/
│   │   ├── dhcp_leases.go
│   │   ├── mikrotik_provider.go
│   │   └── mikrotik_service.go
│   ├── myrasec/
│   │   ├── cache_setting.go
│   │   ├── dns_record.go
│   │   ├── domain.go
│   │   ├── error_page.go
│   │   ├── ip_filter.go
│   │   ├── maintenance.go
│   │   ├── myrasec_provider.go
│   │   ├── myrasec_service.go
│   │   ├── ratelimit.go
│   │   ├── redirect.go
│   │   ├── settings.go
│   │   └── waf_rule.go
│   ├── newrelic/
│   │   ├── alert.go
│   │   ├── alertchannel.go
│   │   ├── alertcondition.go
│   │   ├── alertpolicy.go
│   │   ├── helpers.go
│   │   ├── infra.go
│   │   ├── newrelic_provider.go
│   │   ├── newrelic_service.go
│   │   ├── synthetics.go
│   │   └── tags.go
│   ├── ns1/
│   │   ├── monitoringjob.go
│   │   ├── ns1_provider.go
│   │   ├── ns1_service.go
│   │   ├── team.go
│   │   └── zone.go
│   ├── octopusdeploy/
│   │   ├── generic_resources.go
│   │   ├── octopusdeploy_provider.go
│   │   └── octopusdeploy_service.go
│   ├── okta/
│   │   ├── app.go
│   │   ├── app_auto_login.go
│   │   ├── app_basic_auth.go
│   │   ├── app_bookmark.go
│   │   ├── app_oauth.go
│   │   ├── app_saml.go
│   │   ├── app_secure_password_store.go
│   │   ├── app_signon_policy.go
│   │   ├── app_signon_policy_rule.go
│   │   ├── app_swa.go
│   │   ├── app_three_field.go
│   │   ├── app_user_schema.go
│   │   ├── authenticator.go
│   │   ├── authorization_server.go
│   │   ├── authorization_server_claim.go
│   │   ├── authorization_server_policy.go
│   │   ├── authorization_server_policy_rule.go
│   │   ├── authorization_server_scope.go
│   │   ├── event_hook.go
│   │   ├── factor.go
│   │   ├── group.go
│   │   ├── group_rule.go
│   │   ├── helpers.go
│   │   ├── idp_oidc.go
│   │   ├── idp_saml.go
│   │   ├── idp_social.go
│   │   ├── inline_hook.go
│   │   ├── network_zone.go
│   │   ├── okta_provider.go
│   │   ├── okta_service.go
│   │   ├── policy_mfa.go
│   │   ├── policy_password.go
│   │   ├── policy_rule_mfa.go
│   │   ├── policy_rule_password.go
│   │   ├── policy_rule_signon.go
│   │   ├── policy_signon.go
│   │   ├── template_sms.go
│   │   ├── trusted_origin.go
│   │   ├── user.go
│   │   ├── user_schema.go
│   │   └── user_type.go
│   ├── opal/
│   │   ├── group.go
│   │   ├── helpers.go
│   │   ├── message_channel.go
│   │   ├── on_call_schedule.go
│   │   ├── opal_provider.go
│   │   ├── opal_service.go
│   │   ├── owner.go
│   │   └── resource.go
│   ├── openstack/
│   │   ├── blockstorage.go
│   │   ├── compute.go
│   │   ├── networking.go
│   │   ├── openstack_provider.go
│   │   └── openstack_service.go
│   ├── opsgenie/
│   │   ├── opsgenie_provider.go
│   │   ├── opsgenie_service.go
│   │   ├── service.go
│   │   ├── team.go
│   │   └── user.go
│   ├── pagerduty/
│   │   ├── business_service.go
│   │   ├── escalation_policy.go
│   │   ├── pagerduty_provider.go
│   │   ├── pagerduty_service.go
│   │   ├── ruleset.go
│   │   ├── schedule.go
│   │   ├── service.go
│   │   ├── team.go
│   │   └── user.go
│   ├── panos/
│   │   ├── firewall_device_config.go
│   │   ├── firewall_networking.go
│   │   ├── firewall_objects.go
│   │   ├── firewall_policy.go
│   │   ├── helpers.go
│   │   ├── panorama_device_config.go
│   │   ├── panorama_networking.go
│   │   ├── panorama_objects.go
│   │   ├── panorama_plugins.go
│   │   ├── panorama_policy.go
│   │   ├── panos_provider.go
│   │   └── panos_service.go
│   ├── rabbitmq/
│   │   ├── binding.go
│   │   ├── exchange.go
│   │   ├── helpers.go
│   │   ├── permissions.go
│   │   ├── policy.go
│   │   ├── queue.go
│   │   ├── rabbitmq_provider.go
│   │   ├── rabbitmq_service.go
│   │   ├── shovel.go
│   │   ├── user.go
│   │   └── vhost.go
│   ├── tencentcloud/
│   │   ├── acl.go
│   │   ├── as.go
│   │   ├── cbs.go
│   │   ├── cdn.go
│   │   ├── cfs.go
│   │   ├── clb.go
│   │   ├── cos.go
│   │   ├── cvm.go
│   │   ├── dnspod.go
│   │   ├── eip.go
│   │   ├── elasticsearch.go
│   │   ├── gaap.go
│   │   ├── key_pair.go
│   │   ├── mongodb.go
│   │   ├── mysql.go
│   │   ├── nat_gateway.go
│   │   ├── pts.go
│   │   ├── redis.go
│   │   ├── route_table.go
│   │   ├── scf.go
│   │   ├── security_group.go
│   │   ├── ses.go
│   │   ├── ssl.go
│   │   ├── subnet.go
│   │   ├── tat.go
│   │   ├── tcaplus.go
│   │   ├── tencentcloud_helpers.go
│   │   ├── tencentcloud_provider.go
│   │   ├── tencentcloud_service.go
│   │   ├── vpc.go
│   │   └── vpn.go
│   ├── vault/
│   │   ├── vault_provider.go
│   │   └── vault_service_generator.go
│   ├── vultr/
│   │   ├── bare_metal_server.go
│   │   ├── block_storage.go
│   │   ├── dns_domain.go
│   │   ├── firewall_group.go
│   │   ├── network.go
│   │   ├── reserved_ip.go
│   │   ├── server.go
│   │   ├── snapshot.go
│   │   ├── ssh_key.go
│   │   ├── startup_script.go
│   │   ├── user.go
│   │   ├── vultr_provider.go
│   │   └── vultr_service.go
│   ├── xenorchestra/
│   │   ├── acls.go
│   │   ├── resource_sets.go
│   │   ├── xenorchestra_provider.go
│   │   └── xenorchestra_service.go
│   └── yandex/
│       ├── compute_disk.go
│       ├── compute_instance.go
│       ├── util.go
│       ├── vpc_network.go
│       ├── vpc_subnet.go
│       ├── yandex_provider.go
│       └── yandex_service.go
├── snap/
│   └── snapcraft.yaml
├── terraformutils/
│   ├── base_provider.go
│   ├── connect.go
│   ├── connect_test.go
│   ├── flatmap.go
│   ├── flatmap_test.go
│   ├── hcl.go
│   ├── hcl_test.go
│   ├── json.go
│   ├── providers_mapping.go
│   ├── providerwrapper/
│   │   ├── provider.go
│   │   └── provider_test.go
│   ├── resource.go
│   ├── service.go
│   ├── service_test.go
│   ├── terraformoutput/
│   │   ├── bucket.go
│   │   └── hcl.go
│   ├── test_data/
│   │   ├── test1.json
│   │   ├── test2.json
│   │   ├── test3.json
│   │   ├── test4.json
│   │   ├── test5.json
│   │   ├── test6.json
│   │   ├── test7.json
│   │   ├── test8.json
│   │   └── test9.json
│   ├── tfstate_converter_test.go
│   ├── utils.go
│   ├── walk.go
│   └── walk_test.go
└── tests/
    ├── aws/
    │   └── main.go
    ├── commercetools/
    │   └── main.go
    ├── datadog/
    │   ├── README.md
    │   ├── helper.go
    │   ├── main.go
    │   └── resources/
    │       ├── dashboard.tf
    │       ├── downtime.tf
    │       ├── monitor.tf
    │       ├── outputs.tf
    │       ├── synthetics.tf
    │       └── user.tf
    ├── gcp/
    │   └── main.go
    ├── github/
    │   └── main.go
    ├── octopusdeploy/
    │   ├── README.md
    │   ├── channel.tf
    │   ├── environment.tf
    │   ├── feed.tf
    │   ├── library_variable_set.tf
    │   ├── lifecycle.tf
    │   ├── main.tf
    │   ├── project.tf
    │   ├── project_group.tf
    │   ├── provider.tf
    │   └── tagset.tf
    ├── openstack/
    │   └── main.go
    └── rabbitmq/
        └── main.go
Download .txt
Showing preview only (367K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3496 symbols across 780 files)

FILE: build/main.go
  constant filePrefix (line 12) | filePrefix = "provider_cmd_"
  constant fileSuffix (line 13) | fileSuffix = ".go"
  constant packageCmdPath (line 14) | packageCmdPath = "cmd"
  function main (line 16) | func main() {

FILE: build/multi-build/main.go
  constant filePrefix (line 12) | filePrefix = "provider_cmd_"
  constant fileSuffix (line 13) | fileSuffix = ".go"
  constant packageCmdPath (line 14) | packageCmdPath = "cmd"
  function main (line 16) | func main() {

FILE: cmd/import.go
  type ImportOptions (line 36) | type ImportOptions struct
  constant DefaultPathPattern (line 59) | DefaultPathPattern = "{output}/{provider}/{service}/"
  constant DefaultPathOutput (line 60) | DefaultPathOutput = "generated"
  constant DefaultState (line 61) | DefaultState = "local"
  function newImportCmd (line 63) | func newImportCmd() *cobra.Command {
  function Import (line 88) | func Import(provider terraformutils.ProviderGenerator, options ImportOpt...
  function initOptionsAndWrapper (line 116) | func initOptionsAndWrapper(provider terraformutils.ProviderGenerator, op...
  function initAllServicesResources (line 152) | func initAllServicesResources(providersMapping *terraformutils.Providers...
  function importFromPlan (line 178) | func importFromPlan(providerMapping *terraformutils.ProvidersMapping, op...
  function initServiceResources (line 199) | func initServiceResources(service string, provider terraformutils.Provid...
  function ImportFromPlan (line 221) | func ImportFromPlan(provider terraformutils.ProviderGenerator, plan *Imp...
  function printService (line 251) | func printService(provider terraformutils.ProviderGenerator, serviceName...
  function Path (line 361) | func Path(pathPattern, providerName, serviceName, output string) string {
  function listCmd (line 369) | func listCmd(provider terraformutils.ProviderGenerator) *cobra.Command {
  function providerServices (line 386) | func providerServices(provider terraformutils.ProviderGenerator) []string {
  function baseProviderFlags (line 395) | func baseProviderFlags(flag *pflag.FlagSet, options *ImportOptions, samp...

FILE: cmd/plan.go
  type ImportPlan (line 27) | type ImportPlan struct
  function newPlanCmd (line 35) | func newPlanCmd() *cobra.Command {
  function newCmdPlanImporter (line 54) | func newCmdPlanImporter(options ImportOptions) *cobra.Command {
  function LoadPlanfile (line 89) | func LoadPlanfile(path string) (*ImportPlan, error) {
  function ExportPlanFile (line 110) | func ExportPlanFile(plan *ImportPlan, path, filename string) error {

FILE: cmd/provider_cmd_alicloud.go
  function newCmdAliCloudImporter (line 24) | func newCmdAliCloudImporter(options ImportOptions) *cobra.Command {
  function newAliCloudProvider (line 52) | func newAliCloudProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_auth0.go
  function newCmdAuth0Importer (line 26) | func newCmdAuth0Importer(options ImportOptions) *cobra.Command {
  function newAuth0Provider (line 58) | func newAuth0Provider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_aws.go
  function newCmdAwsImporter (line 24) | func newCmdAwsImporter(options ImportOptions) *cobra.Command {
  function parseAndGroupResources (line 82) | func parseAndGroupResources(allResources []string) ([]string, []string, ...
  function importGlobalResources (line 96) | func importGlobalResources(options ImportOptions) error {
  function importEastOnlyResources (line 103) | func importEastOnlyResources(options ImportOptions) error {
  function importRegionResources (line 110) | func importRegionResources(options ImportOptions, originalPathPattern st...
  function newAWSProvider (line 128) | func newAWSProvider() terraformutils.ProviderGenerator {
  function contains (line 132) | func contains(s []string, e string) bool {

FILE: cmd/provider_cmd_azure.go
  function newCmdAzureImporter (line 23) | func newCmdAzureImporter(options ImportOptions) *cobra.Command {
  function newAzureProvider (line 44) | func newAzureProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_azuread.go
  function newCmdAzureADImporter (line 23) | func newCmdAzureADImporter(options ImportOptions) *cobra.Command {
  function newAzureADProvider (line 44) | func newAzureADProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_azuredevops.go
  function newCmdAzureDevOpsImporter (line 23) | func newCmdAzureDevOpsImporter(options ImportOptions) *cobra.Command {
  function newAzureDevOpsProvider (line 43) | func newAzureDevOpsProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_cloudflare.go
  function newCmdCloudflareImporter (line 23) | func newCmdCloudflareImporter(options ImportOptions) *cobra.Command {
  function newCloudflareProvider (line 43) | func newCloudflareProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_commercetools.go
  constant defaultCommercetoolsBaseURL (line 26) | defaultCommercetoolsBaseURL  = "https://api.sphere.io"
  constant defaultCommercetoolsTokenURL (line 27) | defaultCommercetoolsTokenURL = "https://auth.sphere.io"
  function newCmdCommercetoolsImporter (line 30) | func newCmdCommercetoolsImporter(options ImportOptions) *cobra.Command {
  function newCommercetoolsProvider (line 73) | func newCommercetoolsProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_datadog.go
  function newCmdDatadogImporter (line 22) | func newCmdDatadogImporter(options ImportOptions) *cobra.Command {
  function newDataDogProvider (line 46) | func newDataDogProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_digitalocean.go
  function newCmdDigitalOceanImporter (line 23) | func newCmdDigitalOceanImporter(options ImportOptions) *cobra.Command {
  function newDigitalOceanProvider (line 44) | func newDigitalOceanProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_equinixmetal.go
  function newCmdEquinixMetalImporter (line 23) | func newCmdEquinixMetalImporter(options ImportOptions) *cobra.Command {
  function newEquinixMetalProvider (line 44) | func newEquinixMetalProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_fastly.go
  function newCmdFastlyImporter (line 23) | func newCmdFastlyImporter(options ImportOptions) *cobra.Command {
  function newFastlyProvider (line 43) | func newFastlyProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_github.go
  function newCmdGithubImporter (line 25) | func newCmdGithubImporter(options ImportOptions) *cobra.Command {
  function newGitHubProvider (line 56) | func newGitHubProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_gitlab.go
  function newCmdGitLabImporter (line 25) | func newCmdGitLabImporter(options ImportOptions) *cobra.Command {
  function newGitLabProvider (line 56) | func newGitLabProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_gmailfilter.go
  function newCmdGmailfilterImporter (line 23) | func newCmdGmailfilterImporter(options ImportOptions) *cobra.Command {
  function newGmailfilterProvider (line 49) | func newGmailfilterProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_google.go
  function newCmdGoogleImporter (line 25) | func newCmdGoogleImporter(options ImportOptions) *cobra.Command {
  function newGoogleProvider (line 57) | func newGoogleProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_grafana.go
  function newCmdGrafanaImporter (line 23) | func newCmdGrafanaImporter(options ImportOptions) *cobra.Command {
  function newGrafanaProvider (line 42) | func newGrafanaProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_heroku.go
  function newCmdHerokuImporter (line 26) | func newCmdHerokuImporter(options ImportOptions) *cobra.Command {
  function newHerokuProvider (line 52) | func newHerokuProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_honeycombio.go
  function newCmdHoneycombioImporter (line 23) | func newCmdHoneycombioImporter(options ImportOptions) *cobra.Command {
  function newHoneycombioProvider (line 45) | func newHoneycombioProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_ibm.go
  function newCmdIbmImporter (line 23) | func newCmdIbmImporter(options ImportOptions) *cobra.Command {
  function newIbmProvider (line 51) | func newIbmProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_ionoscloud.go
  function newCmdIonosCloudImporter (line 23) | func newCmdIonosCloudImporter(options ImportOptions) *cobra.Command {
  function newIonosCloudProvider (line 43) | func newIonosCloudProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_keycloak.go
  constant defaultKeycloakEndpoint (line 30) | defaultKeycloakEndpoint              = "https://localhost:8443"
  constant defaultKeycloakBasePath (line 31) | defaultKeycloakBasePath              = ""
  constant defaultKeycloakRealm (line 32) | defaultKeycloakRealm                 = "master"
  constant defaultKeycloakClientTimeout (line 33) | defaultKeycloakClientTimeout         = int64(30)
  constant defaultKeycloakTLSInsecureSkipVerify (line 34) | defaultKeycloakTLSInsecureSkipVerify = false
  constant defaultRedHatSSO (line 35) | defaultRedHatSSO                     = false
  function newCmdKeycloakImporter (line 38) | func newCmdKeycloakImporter(options ImportOptions) *cobra.Command {
  function newKeycloakProvider (line 105) | func newKeycloakProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_kubernetes.go
  function newCmdKubernetesImporter (line 24) | func newCmdKubernetesImporter(options ImportOptions) *cobra.Command {
  function newKubernetesProvider (line 44) | func newKubernetesProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_launchdarkly.go
  function newCmdLaunchDarklyImporter (line 23) | func newCmdLaunchDarklyImporter(options ImportOptions) *cobra.Command {
  function newLaunchDarklyProvider (line 43) | func newLaunchDarklyProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_linode.go
  function newCmdLinodeImporter (line 23) | func newCmdLinodeImporter(options ImportOptions) *cobra.Command {
  function newLinodeProvider (line 43) | func newLinodeProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_logzio.go
  constant defaultBaseURL (line 26) | defaultBaseURL = "https://api.logz.io"
  function newCmdLogzioImporter (line 29) | func newCmdLogzioImporter(options ImportOptions) *cobra.Command {
  function newLogzioProvider (line 57) | func newLogzioProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_mackerel.go
  function newCmdMackerelImporter (line 23) | func newCmdMackerelImporter(options ImportOptions) *cobra.Command {
  function newMackerelProvider (line 44) | func newMackerelProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_mikrotik.go
  function newCmdMikrotikImporter (line 22) | func newCmdMikrotikImporter(options ImportOptions) *cobra.Command {
  function newMikrotikProvider (line 42) | func newMikrotikProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_myrasec.go
  function newCmdMyrasecImporter (line 12) | func newCmdMyrasecImporter(options ImportOptions) *cobra.Command {
  function newMyrasecProvider (line 35) | func newMyrasecProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_newrelic.go
  function newCmdNewRelicImporter (line 23) | func newCmdNewRelicImporter(options ImportOptions) *cobra.Command {
  function newNewRelicProvider (line 49) | func newNewRelicProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_ns1.go
  function newCmdNs1Importer (line 23) | func newCmdNs1Importer(options ImportOptions) *cobra.Command {
  function newNs1Provider (line 43) | func newNs1Provider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_octopusdeploy.go
  function newCmdOctopusDeployImporter (line 10) | func newCmdOctopusDeployImporter(options ImportOptions) *cobra.Command {
  function newOctopusDeployProvider (line 34) | func newOctopusDeployProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_okta.go
  function newCmdOktaImporter (line 25) | func newCmdOktaImporter(options ImportOptions) *cobra.Command {
  function newOktaProvider (line 57) | func newOktaProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_opal.go
  function newCmdOpalImporter (line 23) | func newCmdOpalImporter(options ImportOptions) *cobra.Command {
  function newOpalProvider (line 44) | func newOpalProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_openstack.go
  function newCmdOpenStackImporter (line 24) | func newCmdOpenStackImporter(options ImportOptions) *cobra.Command {
  function newOpenStackProvider (line 50) | func newOpenStackProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_opsgenie.go
  function newCmdOpsgenieImporter (line 10) | func newCmdOpsgenieImporter(options ImportOptions) *cobra.Command {
  function newOpsgenieProvider (line 31) | func newOpsgenieProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_pagerduty.go
  function newCmdPagerDutyImporter (line 23) | func newCmdPagerDutyImporter(options ImportOptions) *cobra.Command {
  function newPagerDutyProvider (line 45) | func newPagerDutyProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_panos.go
  function newCmdPanosImporter (line 27) | func newCmdPanosImporter(options ImportOptions) *cobra.Command {
  function newPanosProvider (line 79) | func newPanosProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_rabbitmq.go
  constant defaultRabbitMQEndpoint (line 27) | defaultRabbitMQEndpoint = "http://localhost:15672"
  function newCmdRabbitMQImporter (line 30) | func newCmdRabbitMQImporter(options ImportOptions) *cobra.Command {
  function newRabbitMQProvider (line 56) | func newRabbitMQProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_tencentcloud.go
  function newCmdTencentCloudImporter (line 25) | func newCmdTencentCloudImporter(options ImportOptions) *cobra.Command {
  function newTencentCloudProvider (line 51) | func newTencentCloudProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_vault.go
  function newCmdVaultImporter (line 23) | func newCmdVaultImporter(options ImportOptions) *cobra.Command {
  function newVaultProvider (line 46) | func newVaultProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_vultr.go
  function newCmdVultrImporter (line 23) | func newCmdVultrImporter(options ImportOptions) *cobra.Command {
  function newVultrProvider (line 43) | func newVultrProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_xenorchestra.go
  function newCmdXenorchestraImporter (line 22) | func newCmdXenorchestraImporter(options ImportOptions) *cobra.Command {
  function newXenorchestraProvider (line 42) | func newXenorchestraProvider() terraformutils.ProviderGenerator {

FILE: cmd/provider_cmd_yandex.go
  function newCmdYandexImporter (line 27) | func newCmdYandexImporter(options ImportOptions) *cobra.Command {
  function newYandexProvider (line 57) | func newYandexProvider() terraformutils.ProviderGenerator {

FILE: cmd/root.go
  function NewCmdRoot (line 22) | func NewCmdRoot() *cobra.Command {
  function Execute (line 34) | func Execute() error {
  function providerImporterSubcommands (line 39) | func providerImporterSubcommands() []func(options ImportOptions) *cobra....
  function providerGenerators (line 95) | func providerGenerators() map[string]func() terraformutils.ProviderGener...

FILE: cmd/version.go
  constant version (line 9) | version = "v0.8.30"

FILE: main.go
  type TerraformerWriter (line 26) | type TerraformerWriter struct
    method Write (line 30) | func (t TerraformerWriter) Write(p []byte) (n int, err error) {
  function main (line 37) | func main() {

FILE: providers/alicloud/alicloud_provider.go
  type AliCloudProvider (line 26) | type AliCloudProvider struct
    method GetConfig (line 35) | func (p *AliCloudProvider) GetConfig() cty.Value {
    method GetResourceConnections (line 69) | func (p AliCloudProvider) GetResourceConnections() map[string]map[stri...
    method GetProviderData (line 76) | func (p AliCloudProvider) GetProviderData(arg ...string) map[string]in...
    method Init (line 91) | func (p *AliCloudProvider) Init(args []string) error {
    method GetName (line 98) | func (p *AliCloudProvider) GetName() string {
    method InitService (line 103) | func (p *AliCloudProvider) InitService(serviceName string, verbose boo...
    method GetSupportedService (line 120) | func (p *AliCloudProvider) GetSupportedService() map[string]terraformu...
  constant GlobalRegion (line 32) | GlobalRegion = "alicloud-global"

FILE: providers/alicloud/alicloud_service.go
  type AliCloudService (line 28) | type AliCloudService struct
    method LoadClientFromProfile (line 59) | func (s *AliCloudService) LoadClientFromProfile() (*connectivity.Aliyu...
  type ConfigFile (line 33) | type ConfigFile struct
  function LoadConfigFromProfile (line 76) | func LoadConfigFromProfile(profileName string) (*connectivity.Config, er...

FILE: providers/alicloud/connectivity/client.go
  type AliyunClient (line 29) | type AliyunClient struct
    method WithEcsClient (line 86) | func (client *AliyunClient) WithEcsClient(do func(*ecs.Client) (interf...
    method WithRdsClient (line 124) | func (client *AliyunClient) WithRdsClient(do func(*rds.Client) (interf...
    method WithSlbClient (line 156) | func (client *AliyunClient) WithSlbClient(do func(*slb.Client) (interf...
    method WithVpcClient (line 188) | func (client *AliyunClient) WithVpcClient(do func(*vpc.Client) (interf...
    method WithDNSClient (line 220) | func (client *AliyunClient) WithDNSClient(do func(*alidns.Client) (int...
    method WithRAMClient (line 252) | func (client *AliyunClient) WithRAMClient(do func(*ram.Client) (interf...
    method WithPvtzClient (line 287) | func (client *AliyunClient) WithPvtzClient(do func(*pvtz.Client) (inte...
    method getSdkConfig (line 324) | func (client *AliyunClient) getSdkConfig() *sdk.Config {
    method getTransport (line 334) | func (client *AliyunClient) getTransport() *http.Transport {
    method getHTTPProxyURL (line 350) | func (client *AliyunClient) getHTTPProxyURL() *url.URL {
  type APIVersion (line 49) | type APIVersion
  constant DefaultClientRetryCountSmall (line 51) | DefaultClientRetryCountSmall = 5
  constant Terraform (line 52) | Terraform = "HashiCorp-Terraform"
  constant Provider (line 53) | Provider = "Terraform-Provider"
  constant Module (line 54) | Module = "Terraform-Module"
  method Client (line 62) | func (c *Config) Client() (*AliyunClient, error) {

FILE: providers/alicloud/connectivity/config.go
  type Config (line 20) | type Config struct
    method loadAndValidate (line 73) | func (c *Config) loadAndValidate() error {
    method validateRegion (line 82) | func (c *Config) validateRegion() error {
    method getAuthCredential (line 92) | func (c *Config) getAuthCredential() auth.Credential {
    method getAuthCredentialByEcsRoleName (line 117) | func (c *Config) getAuthCredentialByEcsRoleName() (accessKey, secretKe...
    method MakeConfigByEcsRoleName (line 187) | func (c *Config) MakeConfigByEcsRoleName() error {

FILE: providers/alicloud/connectivity/endpoint.go
  type ServiceCode (line 11) | type ServiceCode
  constant ECSCode (line 14) | ECSCode           = ServiceCode("ECS")
  constant ESSCode (line 15) | ESSCode           = ServiceCode("ESS")
  constant RAMCode (line 16) | RAMCode           = ServiceCode("RAM")
  constant VPCCode (line 17) | VPCCode           = ServiceCode("VPC")
  constant SLBCode (line 18) | SLBCode           = ServiceCode("SLB")
  constant RDSCode (line 19) | RDSCode           = ServiceCode("RDS")
  constant OSSCode (line 20) | OSSCode           = ServiceCode("OSS")
  constant ONSCode (line 21) | ONSCode           = ServiceCode("ONS")
  constant ALIKAFKACode (line 22) | ALIKAFKACode      = ServiceCode("ALIKAFKA")
  constant CONTAINCode (line 23) | CONTAINCode       = ServiceCode("CS")
  constant CRCode (line 24) | CRCode            = ServiceCode("CR")
  constant DOMAINCode (line 25) | DOMAINCode        = ServiceCode("DOMAIN")
  constant CDNCode (line 26) | CDNCode           = ServiceCode("CDN")
  constant CMSCode (line 27) | CMSCode           = ServiceCode("CMS")
  constant KMSCode (line 28) | KMSCode           = ServiceCode("KMS")
  constant OTSCode (line 29) | OTSCode           = ServiceCode("OTS")
  constant DNSCode (line 30) | DNSCode           = ServiceCode("DNS")
  constant PVTZCode (line 31) | PVTZCode          = ServiceCode("PVTZ")
  constant LOGCode (line 32) | LOGCode           = ServiceCode("LOG")
  constant FCCode (line 33) | FCCode            = ServiceCode("FC")
  constant DDSCode (line 34) | DDSCode           = ServiceCode("DDS")
  constant GPDBCode (line 35) | GPDBCode          = ServiceCode("GPDB")
  constant STSCode (line 36) | STSCode           = ServiceCode("STS")
  constant CENCode (line 37) | CENCode           = ServiceCode("CEN")
  constant KVSTORECode (line 38) | KVSTORECode       = ServiceCode("KVSTORE")
  constant DATAHUBCode (line 39) | DATAHUBCode       = ServiceCode("DATAHUB")
  constant MNSCode (line 40) | MNSCode           = ServiceCode("MNS")
  constant CLOUDAPICode (line 41) | CLOUDAPICode      = ServiceCode("APIGATEWAY")
  constant DRDSCode (line 42) | DRDSCode          = ServiceCode("DRDS")
  constant LOCATIONCode (line 43) | LOCATIONCode      = ServiceCode("LOCATION")
  constant ELASTICSEARCHCode (line 44) | ELASTICSEARCHCode = ServiceCode("ELASTICSEARCH")
  constant NASCode (line 45) | NASCode           = ServiceCode("NAS")
  constant ACTIONTRAILCode (line 46) | ACTIONTRAILCode   = ServiceCode("ACTIONTRAIL")
  constant BSSOPENAPICode (line 47) | BSSOPENAPICode    = ServiceCode("BSSOPENAPI")
  constant DDOSCOOCode (line 48) | DDOSCOOCode       = ServiceCode("DDOSCOO")
  constant DDOSBGPCode (line 49) | DDOSBGPCode       = ServiceCode("DDOSBGP")
  type Endpoints (line 53) | type Endpoints struct
  type Endpoint (line 57) | type Endpoint struct
  type RegionIds (line 63) | type RegionIds struct
  type Products (line 67) | type Products struct
  type Product (line 71) | type Product struct
  function loadEndpoint (line 76) | func loadEndpoint(region string, serviceCode ServiceCode) string {

FILE: providers/alicloud/connectivity/regions.go
  type Region (line 4) | type Region
  constant Hangzhou (line 8) | Hangzhou    = Region("cn-hangzhou")
  constant Qingdao (line 9) | Qingdao     = Region("cn-qingdao")
  constant Beijing (line 10) | Beijing     = Region("cn-beijing")
  constant Hongkong (line 11) | Hongkong    = Region("cn-hongkong")
  constant Shenzhen (line 12) | Shenzhen    = Region("cn-shenzhen")
  constant Shanghai (line 13) | Shanghai    = Region("cn-shanghai")
  constant Zhangjiakou (line 14) | Zhangjiakou = Region("cn-zhangjiakou")
  constant Huhehaote (line 15) | Huhehaote   = Region("cn-huhehaote")
  constant ChengDu (line 16) | ChengDu     = Region("cn-chengdu")
  constant APSouthEast1 (line 18) | APSouthEast1 = Region("ap-southeast-1")
  constant APNorthEast1 (line 19) | APNorthEast1 = Region("ap-northeast-1")
  constant APSouthEast2 (line 20) | APSouthEast2 = Region("ap-southeast-2")
  constant APSouthEast3 (line 21) | APSouthEast3 = Region("ap-southeast-3")
  constant APSouthEast5 (line 22) | APSouthEast5 = Region("ap-southeast-5")
  constant APSouth1 (line 24) | APSouth1 = Region("ap-south-1")
  constant USWest1 (line 26) | USWest1 = Region("us-west-1")
  constant USEast1 (line 27) | USEast1 = Region("us-east-1")
  constant MEEast1 (line 29) | MEEast1 = Region("me-east-1")
  constant EUCentral1 (line 31) | EUCentral1 = Region("eu-central-1")
  constant EUWest1 (line 32) | EUWest1    = Region("eu-west-1")
  constant ShenZhenFinance (line 34) | ShenZhenFinance = Region("cn-shenzhen-finance-1")
  constant ShanghaiFinance (line 35) | ShanghaiFinance = Region("cn-shanghai-finance-1")

FILE: providers/alicloud/dns.go
  type DNSGenerator (line 25) | type DNSGenerator struct
    method InitResources (line 113) | func (g *DNSGenerator) InitResources() error {
  function resourceFromDomain (line 29) | func resourceFromDomain(domain alidns.DomainInDescribeDomains) terraform...
  function resourceFromDomainRecord (line 41) | func resourceFromDomainRecord(record alidns.Record) terraformutils.Resou...
  function initDomains (line 53) | func initDomains(client *connectivity.AliyunClient) ([]alidns.DomainInDe...
  function initDomainRecords (line 81) | func initDomainRecords(client *connectivity.AliyunClient, allDomains []a...

FILE: providers/alicloud/ecs.go
  type EcsGenerator (line 26) | type EcsGenerator struct
    method InitResources (line 43) | func (g *EcsGenerator) InitResources() error {
    method PostConvertHook (line 92) | func (g *EcsGenerator) PostConvertHook() error {
  function resourceFromInstance (line 30) | func resourceFromInstance(instance ecs.Instance) terraformutils.Resource {

FILE: providers/alicloud/key_pair.go
  type KeyPairGenerator (line 24) | type KeyPairGenerator struct
    method InitResources (line 41) | func (g *KeyPairGenerator) InitResources() error {
  function resourceFromKeyPair (line 28) | func resourceFromKeyPair(keyPair ecs.KeyPair) terraformutils.Resource {

FILE: providers/alicloud/nat_gateway.go
  type NatGatewayGenerator (line 24) | type NatGatewayGenerator struct
    method InitResources (line 41) | func (g *NatGatewayGenerator) InitResources() error {
  function resourceFromNatGatewayResponse (line 28) | func resourceFromNatGatewayResponse(natGateway vpc.NatGateway) terraform...

FILE: providers/alicloud/pvtz.go
  type PvtzGenerator (line 27) | type PvtzGenerator struct
    method InitResources (line 131) | func (g *PvtzGenerator) InitResources() error {
    method PostConvertHook (line 166) | func (g *PvtzGenerator) PostConvertHook() error {
  function resourceFromZoneResponse (line 31) | func resourceFromZoneResponse(zone pvtz.Zone) terraformutils.Resource {
  function resourceFromZoneAttachmentResponse (line 43) | func resourceFromZoneAttachmentResponse(zone pvtz.Zone) terraformutils.R...
  function resourceFromZoneRecordResponse (line 55) | func resourceFromZoneRecordResponse(record pvtz.Record, zoneID string) t...
  function initZones (line 67) | func initZones(client *connectivity.AliyunClient) ([]pvtz.Zone, error) {
  function initZoneRecords (line 94) | func initZoneRecords(client *connectivity.AliyunClient, allZones []pvtz....

FILE: providers/alicloud/ram.go
  type RAMGenerator (line 26) | type RAMGenerator struct
    method InitResources (line 101) | func (g *RAMGenerator) InitResources() error {
    method PostConvertHook (line 131) | func (g *RAMGenerator) PostConvertHook() error {
  function resourceFromRAMRole (line 30) | func resourceFromRAMRole(role ram.RoleInListRoles) terraformutils.Resour...
  function resourceFromRAMPolicy (line 42) | func resourceFromRAMPolicy(policy ram.PolicyInListPoliciesForRole, roleN...
  function initRoles (line 57) | func initRoles(client *connectivity.AliyunClient) ([]ram.RoleInListRoles...
  function initRAMPolicyAttachment (line 75) | func initRAMPolicyAttachment(client *connectivity.AliyunClient, allRoles...

FILE: providers/alicloud/rds.go
  type RdsGenerator (line 24) | type RdsGenerator struct
    method InitResources (line 41) | func (g *RdsGenerator) InitResources() error {
    method PostConvertHook (line 79) | func (g *RdsGenerator) PostConvertHook() error {
  function resourceFromrdsResponse (line 28) | func resourceFromrdsResponse(rds rds.DBInstance) terraformutils.Resource {

FILE: providers/alicloud/sg.go
  type SgGenerator (line 27) | type SgGenerator struct
    method InitResources (line 125) | func (g *SgGenerator) InitResources() error {
    method PostConvertHook (line 155) | func (g *SgGenerator) PostConvertHook() error {
  function resourceFromSecurityGroup (line 31) | func resourceFromSecurityGroup(securitygroup ecs.SecurityGroup) terrafor...
  function resourceFromSecurityGroupAttribute (line 43) | func resourceFromSecurityGroupAttribute(permission ecs.Permission, secur...
  function initSecurityGroupRules (line 69) | func initSecurityGroupRules(client *connectivity.AliyunClient, securityG...
  function initSecurityGroups (line 96) | func initSecurityGroups(client *connectivity.AliyunClient) ([]ecs.Securi...

FILE: providers/alicloud/slb.go
  type SlbGenerator (line 27) | type SlbGenerator struct
    method InitResources (line 147) | func (g *SlbGenerator) InitResources() error {
    method PostConvertHook (line 185) | func (g *SlbGenerator) PostConvertHook() error {
  function resourceFromSlbListener (line 31) | func resourceFromSlbListener(loadBalancer slb.LoadBalancer, suffix strin...
  function resourceFromSlbResponse (line 44) | func resourceFromSlbResponse(loadBalancer slb.LoadBalancer) terraformuti...
  function resourceFromVServerGroupResponse (line 56) | func resourceFromVServerGroupResponse(vServerGroup slb.VServerGroup) ter...
  function initSlb (line 68) | func initSlb(client *connectivity.AliyunClient) ([]slb.LoadBalancer, err...
  function initVServerGroups (line 96) | func initVServerGroups(client *connectivity.AliyunClient, allLoadBalance...
  function initSlbListeners (line 118) | func initSlbListeners(client *connectivity.AliyunClient, allLoadBalancer...

FILE: providers/alicloud/vpc.go
  type VpcGenerator (line 24) | type VpcGenerator struct
    method InitResources (line 41) | func (g *VpcGenerator) InitResources() error {
  function resourceFromVpcResponse (line 28) | func resourceFromVpcResponse(vpc vpc.Vpc) terraformutils.Resource {

FILE: providers/alicloud/vswitch.go
  type VSwitchGenerator (line 24) | type VSwitchGenerator struct
    method InitResources (line 41) | func (g *VSwitchGenerator) InitResources() error {
  function resourceFromVSwitchResponse (line 28) | func resourceFromVSwitchResponse(vswitch vpc.VSwitch) terraformutils.Res...

FILE: providers/auth0/action.go
  type ActionGenerator (line 26) | type ActionGenerator struct
    method createResources (line 30) | func (g ActionGenerator) createResources(actions []*management.Action)...
    method InitResources (line 45) | func (g *ActionGenerator) InitResources() error {

FILE: providers/auth0/auth0_provider.go
  type Auth0Provider (line 25) | type Auth0Provider struct
    method Init (line 32) | func (p *Auth0Provider) Init(args []string) error {
    method GetName (line 54) | func (p *Auth0Provider) GetName() string {
    method GetSource (line 58) | func (p *Auth0Provider) GetSource() string {
    method GetConfig (line 62) | func (p *Auth0Provider) GetConfig() cty.Value {
    method InitService (line 70) | func (p *Auth0Provider) InitService(serviceName string, verbose bool) ...
    method GetSupportedService (line 87) | func (p *Auth0Provider) GetSupportedService() map[string]terraformutil...
    method GetResourceConnections (line 108) | func (p Auth0Provider) GetResourceConnections() map[string]map[string]...
    method GetProviderData (line 112) | func (p Auth0Provider) GetProviderData(arg ...string) map[string]inter...

FILE: providers/auth0/auth0_service.go
  type Auth0Service (line 24) | type Auth0Service struct
    method generateClient (line 28) | func (s *Auth0Service) generateClient() *management.Management {

FILE: providers/auth0/branding.go
  type BrandingGenerator (line 28) | type BrandingGenerator struct
    method createResources (line 32) | func (g BrandingGenerator) createResources(branding *management.Brandi...
    method InitResources (line 45) | func (g *BrandingGenerator) InitResources() error {

FILE: providers/auth0/client.go
  type ClientGenerator (line 26) | type ClientGenerator struct
    method createResources (line 30) | func (g ClientGenerator) createResources(clients []*management.Client)...
    method InitResources (line 45) | func (g *ClientGenerator) InitResources() error {

FILE: providers/auth0/client_grant.go
  type ClientGrantGenerator (line 26) | type ClientGrantGenerator struct
    method createResources (line 30) | func (g ClientGrantGenerator) createResources(clientGrantGrants []*man...
    method InitResources (line 45) | func (g *ClientGrantGenerator) InitResources() error {

FILE: providers/auth0/custom_domain.go
  type CustomDomainGenerator (line 26) | type CustomDomainGenerator struct
    method createResources (line 30) | func (g CustomDomainGenerator) createResources(customDomains []*manage...
    method InitResources (line 45) | func (g *CustomDomainGenerator) InitResources() error {

FILE: providers/auth0/email.go
  type EmailGenerator (line 26) | type EmailGenerator struct
    method createResources (line 30) | func (g EmailGenerator) createResources(email *management.Email) []ter...
    method InitResources (line 43) | func (g *EmailGenerator) InitResources() error {

FILE: providers/auth0/hook.go
  type HookGenerator (line 26) | type HookGenerator struct
    method createResources (line 30) | func (g HookGenerator) createResources(hooks []*management.Hook) []ter...
    method InitResources (line 45) | func (g *HookGenerator) InitResources() error {

FILE: providers/auth0/log_stream.go
  type LogStreamGenerator (line 26) | type LogStreamGenerator struct
    method createResources (line 30) | func (g LogStreamGenerator) createResources(logStreams []*management.L...
    method InitResources (line 45) | func (g *LogStreamGenerator) InitResources() error {

FILE: providers/auth0/prompt.go
  type PromptGenerator (line 28) | type PromptGenerator struct
    method createResources (line 32) | func (g PromptGenerator) createResources(prompt *management.Prompt) []...
    method InitResources (line 45) | func (g *PromptGenerator) InitResources() error {

FILE: providers/auth0/resource_server.go
  type ResourceServerGenerator (line 26) | type ResourceServerGenerator struct
    method createResources (line 30) | func (g ResourceServerGenerator) createResources(resourceServers []*ma...
    method InitResources (line 45) | func (g *ResourceServerGenerator) InitResources() error {

FILE: providers/auth0/role.go
  type RoleGenerator (line 26) | type RoleGenerator struct
    method createResources (line 30) | func (g RoleGenerator) createResources(roles []*management.Role) []ter...
    method InitResources (line 45) | func (g *RoleGenerator) InitResources() error {

FILE: providers/auth0/rule.go
  type RuleGenerator (line 26) | type RuleGenerator struct
    method createResources (line 30) | func (g RuleGenerator) createResources(rules []*management.Rule) []ter...
    method InitResources (line 45) | func (g *RuleGenerator) InitResources() error {

FILE: providers/auth0/rule_config.go
  type RuleConfigGenerator (line 26) | type RuleConfigGenerator struct
    method createResources (line 30) | func (g RuleConfigGenerator) createResources(ruleConfigConfigs []*mana...
    method InitResources (line 45) | func (g *RuleConfigGenerator) InitResources() error {

FILE: providers/auth0/tenant.go
  type TenantGenerator (line 28) | type TenantGenerator struct
    method createResources (line 32) | func (g TenantGenerator) createResources(tenant *management.Tenant) []...
    method InitResources (line 45) | func (g *TenantGenerator) InitResources() error {

FILE: providers/auth0/trigger_binding.go
  type TriggerBindingGenerator (line 26) | type TriggerBindingGenerator struct
    method createResources (line 30) | func (g TriggerBindingGenerator) createResources(bindings map[string]*...
    method InitResources (line 50) | func (g *TriggerBindingGenerator) InitResources() error {

FILE: providers/auth0/user.go
  type UserGenerator (line 26) | type UserGenerator struct
    method createResources (line 30) | func (g UserGenerator) createResources(users []*management.User) []ter...
    method InitResources (line 45) | func (g *UserGenerator) InitResources() error {

FILE: providers/aws/accessanalyzer.go
  type AccessAnalyzerGenerator (line 26) | type AccessAnalyzerGenerator struct
    method InitResources (line 30) | func (g *AccessAnalyzerGenerator) InitResources() error {

FILE: providers/aws/acm.go
  type ACMGenerator (line 31) | type ACMGenerator struct
    method createCertificatesResources (line 35) | func (g *ACMGenerator) createCertificatesResources(svc *acm.Client) []...
    method InitResources (line 65) | func (g *ACMGenerator) InitResources() error {
  function extractCertificateUUID (line 77) | func extractCertificateUUID(arn string) string {

FILE: providers/aws/alb.go
  type AlbGenerator (line 30) | type AlbGenerator struct
    method loadLB (line 34) | func (g *AlbGenerator) loadLB(svc *elasticloadbalancingv2.Client) error {
    method loadLBListener (line 59) | func (g *AlbGenerator) loadLBListener(svc *elasticloadbalancingv2.Clie...
    method loadLBListenerRule (line 88) | func (g *AlbGenerator) loadLBListenerRule(svc *elasticloadbalancingv2....
    method loadLBListenerCertificate (line 119) | func (g *AlbGenerator) loadLBListenerCertificate(svc *elasticloadbalan...
    method loadLBTargetGroup (line 148) | func (g *AlbGenerator) loadLBTargetGroup(svc *elasticloadbalancingv2.C...
    method loadTargetGroupTargets (line 173) | func (g *AlbGenerator) loadTargetGroupTargets(svc *elasticloadbalancin...
    method InitResources (line 199) | func (g *AlbGenerator) InitResources() error {
    method PostConvertHook (line 214) | func (g *AlbGenerator) PostConvertHook() error {

FILE: providers/aws/api_gateway.go
  type APIGatewayGenerator (line 30) | type APIGatewayGenerator struct
    method InitResources (line 34) | func (g *APIGatewayGenerator) InitResources() error {
    method loadRestApis (line 57) | func (g *APIGatewayGenerator) loadRestApis(svc *apigateway.Client) err...
    method shouldFilterRestAPI (line 97) | func (g *APIGatewayGenerator) shouldFilterRestAPI(tags map[string]stri...
    method loadStages (line 110) | func (g *APIGatewayGenerator) loadStages(svc *apigateway.Client, restA...
    method loadResources (line 135) | func (g *APIGatewayGenerator) loadResources(svc *apigateway.Client, re...
    method loadModels (line 169) | func (g *APIGatewayGenerator) loadModels(svc *apigateway.Client, restA...
    method loadResourceMethods (line 199) | func (g *APIGatewayGenerator) loadResourceMethods(svc *apigateway.Clie...
    method loadResponses (line 296) | func (g *APIGatewayGenerator) loadResponses(svc *apigateway.Client, re...
    method loadDocumentationParts (line 333) | func (g *APIGatewayGenerator) loadDocumentationParts(svc *apigateway.C...
    method loadAuthorizers (line 361) | func (g *APIGatewayGenerator) loadAuthorizers(svc *apigateway.Client, ...
    method loadVpcLinks (line 393) | func (g *APIGatewayGenerator) loadVpcLinks(svc *apigateway.Client) err...
    method loadUsagePlans (line 412) | func (g *APIGatewayGenerator) loadUsagePlans(svc *apigateway.Client) e...
    method loadAPIKeys (line 431) | func (g *APIGatewayGenerator) loadAPIKeys(svc *apigateway.Client) error {

FILE: providers/aws/api_gatewayv2.go
  type APIGatewayV2Generator (line 27) | type APIGatewayV2Generator struct
    method InitResources (line 31) | func (g *APIGatewayV2Generator) InitResources() error {
    method loadRestApis (line 44) | func (g *APIGatewayV2Generator) loadRestApis(svc *apigatewayv2.ApiGate...
    method processRestApis (line 74) | func (g *APIGatewayV2Generator) processRestApis(svc *apigatewayv2.ApiG...
    method loadStages (line 101) | func (g *APIGatewayV2Generator) loadStages(svc *apigatewayv2.ApiGatewa...
    method processStages (line 130) | func (g *APIGatewayV2Generator) processStages(output []*apigatewayv2.S...
    method loadModels (line 149) | func (g *APIGatewayV2Generator) loadModels(svc *apigatewayv2.ApiGatewa...
    method processModels (line 180) | func (g *APIGatewayV2Generator) processModels(output []*apigatewayv2.M...
    method loadRoutes (line 201) | func (g *APIGatewayV2Generator) loadRoutes(svc *apigatewayv2.ApiGatewa...
    method processRoutes (line 234) | func (g *APIGatewayV2Generator) processRoutes(svc *apigatewayv2.ApiGat...
    method loadResponses (line 256) | func (g *APIGatewayV2Generator) loadResponses(svc *apigatewayv2.ApiGat...
    method processResponses (line 289) | func (g *APIGatewayV2Generator) processResponses(output []*apigatewayv...
    method loadAuthorizers (line 310) | func (g *APIGatewayV2Generator) loadAuthorizers(svc *apigatewayv2.ApiG...
    method processAuthorizers (line 335) | func (g *APIGatewayV2Generator) processAuthorizers(output []*apigatewa...
    method loadVpcLinks (line 356) | func (g *APIGatewayV2Generator) loadVpcLinks(svc *apigatewayv2.ApiGate...
    method processVpcLinks (line 379) | func (g *APIGatewayV2Generator) processVpcLinks(output []*apigatewayv2...

FILE: providers/aws/appsync.go
  type AppSyncGenerator (line 10) | type AppSyncGenerator struct
    method InitResources (line 14) | func (g *AppSyncGenerator) InitResources() error {

FILE: providers/aws/autoscaling.go
  type AutoScalingGenerator (line 30) | type AutoScalingGenerator struct
    method loadAutoScalingGroups (line 34) | func (g *AutoScalingGenerator) loadAutoScalingGroups(svc *autoscaling....
    method loadLaunchConfigurations (line 61) | func (g *AutoScalingGenerator) loadLaunchConfigurations(svc *autoscali...
    method loadLaunchTemplates (line 89) | func (g *AutoScalingGenerator) loadLaunchTemplates(config aws.Config) ...
    method InitResources (line 115) | func (g *AutoScalingGenerator) InitResources() error {
    method PostConvertHook (line 133) | func (g *AutoScalingGenerator) PostConvertHook() error {

FILE: providers/aws/aws_facade.go
  type AwsFacade (line 10) | type AwsFacade struct
    method SetProviderName (line 15) | func (s *AwsFacade) SetProviderName(providerName string) {
    method SetVerbose (line 19) | func (s *AwsFacade) SetVerbose(verbose bool) {
    method ParseFilters (line 23) | func (s *AwsFacade) ParseFilters(rawFilters []string) {
    method ParseFilter (line 27) | func (s *AwsFacade) ParseFilter(rawFilter string) []terraformutils.Res...
    method SetName (line 31) | func (s *AwsFacade) SetName(name string) {
    method GetName (line 34) | func (s *AwsFacade) GetName() string {
    method InitialCleanup (line 38) | func (s *AwsFacade) InitialCleanup() {
    method PostRefreshCleanup (line 42) | func (s *AwsFacade) PostRefreshCleanup() {
    method GetArgs (line 46) | func (s *AwsFacade) GetArgs() map[string]interface{} {
    method SetArgs (line 49) | func (s *AwsFacade) SetArgs(args map[string]interface{}) {
    method GetResources (line 53) | func (s *AwsFacade) GetResources() []terraformutils.Resource {
    method SetResources (line 56) | func (s *AwsFacade) SetResources(resources []terraformutils.Resource) {
    method InitResources (line 60) | func (s *AwsFacade) InitResources() error {
    method PostConvertHook (line 74) | func (s *AwsFacade) PostConvertHook() error {
    method PopulateIgnoreKeys (line 78) | func (s *AwsFacade) PopulateIgnoreKeys(providerWrapper *providerwrappe...

FILE: providers/aws/aws_provider.go
  type AWSProvider (line 26) | type AWSProvider struct
    method GetResourceConnections (line 53) | func (p AWSProvider) GetResourceConnections() map[string]map[string][]...
    method GetProviderData (line 152) | func (p AWSProvider) GetProviderData(arg ...string) map[string]interfa...
    method GetConfig (line 168) | func (p *AWSProvider) GetConfig() cty.Value {
    method GetBasicConfig (line 181) | func (p *AWSProvider) GetBasicConfig() cty.Value {
    method Init (line 186) | func (p *AWSProvider) Init(args []string) error {
    method GetName (line 217) | func (p *AWSProvider) GetName() string {
    method InitService (line 221) | func (p *AWSProvider) InitService(serviceName string, verbose bool) er...
    method GetSupportedService (line 239) | func (p *AWSProvider) GetSupportedService() map[string]terraformutils....
  constant GlobalRegion (line 32) | GlobalRegion = "aws-global"
  constant MainRegionPublicPartition (line 33) | MainRegionPublicPartition = "us-east-1"
  constant NoRegion (line 34) | NoRegion = ""
  function StringValue (line 334) | func StringValue(value *string) string {

FILE: providers/aws/aws_service.go
  type AWSService (line 31) | type AWSService struct
    method generateConfig (line 39) | func (s *AWSService) generateConfig() (aws.Config, error) {
    method buildBaseConfig (line 73) | func (s *AWSService) buildBaseConfig() (aws.Config, error) {
    method escapeAwsInterpolation (line 88) | func (*AWSService) escapeAwsInterpolation(str string) string {
    method getAccountNumber (line 92) | func (s *AWSService) getAccountNumber(config aws.Config) (*string, err...

FILE: providers/aws/batch.go
  type BatchGenerator (line 17) | type BatchGenerator struct
    method InitResources (line 21) | func (g *BatchGenerator) InitResources() error {
    method loadComputeEnvironments (line 41) | func (g *BatchGenerator) loadComputeEnvironments(batchClient *batch.Cl...
    method loadJobDefinitions (line 66) | func (g *BatchGenerator) loadJobDefinitions(batchClient *batch.Client)...
    method loadJobQueues (line 93) | func (g *BatchGenerator) loadJobQueues(batchClient *batch.Client) error {

FILE: providers/aws/budgets.go
  type BudgetsGenerator (line 26) | type BudgetsGenerator struct
    method createResources (line 30) | func (g *BudgetsGenerator) createResources(budgets []types.Budget, acc...
    method InitResources (line 44) | func (g *BudgetsGenerator) InitResources() error {

FILE: providers/aws/cloud9.go
  type Cloud9Generator (line 27) | type Cloud9Generator struct
    method InitResources (line 31) | func (g *Cloud9Generator) InitResources() error {

FILE: providers/aws/cloud_front.go
  type CloudFrontGenerator (line 26) | type CloudFrontGenerator struct
    method InitResources (line 30) | func (g *CloudFrontGenerator) InitResources() error {
    method loadDistribution (line 48) | func (g *CloudFrontGenerator) loadDistribution(svc *cloudfront.Client)...
    method loadCachePolicy (line 75) | func (g *CloudFrontGenerator) loadCachePolicy(svc *cloudfront.Client) ...
    method PostConvertHook (line 101) | func (g *CloudFrontGenerator) PostConvertHook() error {

FILE: providers/aws/cloudformation.go
  type CloudFormationGenerator (line 27) | type CloudFormationGenerator struct
    method InitResources (line 31) | func (g *CloudFormationGenerator) InitResources() error {
    method PostConvertHook (line 94) | func (g *CloudFormationGenerator) PostConvertHook() error {

FILE: providers/aws/cloudhsm.go
  type CloudHsmGenerator (line 27) | type CloudHsmGenerator struct
    method InitResources (line 31) | func (g *CloudHsmGenerator) InitResources() error {

FILE: providers/aws/cloudtrail.go
  type CloudTrailGenerator (line 27) | type CloudTrailGenerator struct
    method createResources (line 31) | func (g *CloudTrailGenerator) createResources(trailList []types.Trail)...
    method InitResources (line 45) | func (g *CloudTrailGenerator) InitResources() error {

FILE: providers/aws/cloudwatch.go
  type CloudWatchGenerator (line 27) | type CloudWatchGenerator struct
    method InitResources (line 31) | func (g *CloudWatchGenerator) InitResources() error {
    method createMetricAlarms (line 56) | func (g *CloudWatchGenerator) createMetricAlarms(cloudwatchSvc *cloudw...
    method createDashboards (line 81) | func (g *CloudWatchGenerator) createDashboards(cloudwatchSvc *cloudwat...
    method createRules (line 106) | func (g *CloudWatchGenerator) createRules(cloudwatcheventsSvc *cloudwa...

FILE: providers/aws/codebuild.go
  type CodeBuildGenerator (line 26) | type CodeBuildGenerator struct
    method InitResources (line 30) | func (g *CodeBuildGenerator) InitResources() error {
    method PostConvertHook (line 54) | func (g *CodeBuildGenerator) PostConvertHook() error {

FILE: providers/aws/codecommit.go
  type CodeCommitGenerator (line 27) | type CodeCommitGenerator struct
    method loadRepository (line 31) | func (g *CodeCommitGenerator) loadRepository(svc *codecommit.Client) e...
    method loadApprovalRuleTemplate (line 51) | func (g *CodeCommitGenerator) loadApprovalRuleTemplate(svc *codecommit...
    method InitResources (line 70) | func (g *CodeCommitGenerator) InitResources() error {
    method PostConvertHook (line 88) | func (g *CodeCommitGenerator) PostConvertHook() error {

FILE: providers/aws/codedeploy.go
  type CodeDeployGenerator (line 27) | type CodeDeployGenerator struct
    method InitResources (line 31) | func (g *CodeDeployGenerator) InitResources() error {

FILE: providers/aws/codepipeline.go
  type CodePipelineGenerator (line 26) | type CodePipelineGenerator struct
    method loadPipelines (line 30) | func (g *CodePipelineGenerator) loadPipelines(svc *codepipeline.Client...
    method loadWebhooks (line 50) | func (g *CodePipelineGenerator) loadWebhooks(svc *codepipeline.Client)...
    method InitResources (line 70) | func (g *CodePipelineGenerator) InitResources() error {

FILE: providers/aws/cognito.go
  type CognitoGenerator (line 16) | type CognitoGenerator struct
    method loadIdentityPools (line 22) | func (g *CognitoGenerator) loadIdentityPools(svc *cognitoidentity.Clie...
    method loadUserPools (line 46) | func (g *CognitoGenerator) loadUserPools(svc *cognitoidentityprovider....
    method loadUserPoolClients (line 73) | func (g *CognitoGenerator) loadUserPoolClients(svc *cognitoidentitypro...
    method InitResources (line 104) | func (g *CognitoGenerator) InitResources() error {
    method PostConvertHook (line 127) | func (g *CognitoGenerator) PostConvertHook() error {
  constant CognitoMaxResults (line 20) | CognitoMaxResults = 60

FILE: providers/aws/config.go
  type ConfigGenerator (line 26) | type ConfigGenerator struct
    method InitResources (line 30) | func (g *ConfigGenerator) InitResources() error {
    method addConfigurationRecorders (line 49) | func (g *ConfigGenerator) addConfigurationRecorders(svc *configservice...
    method addConfigRules (line 72) | func (g *ConfigGenerator) addConfigRules(svc *configservice.Client, co...
    method addDeliveryChannels (line 107) | func (g *ConfigGenerator) addDeliveryChannels(svc *configservice.Clien...

FILE: providers/aws/customer_gateway.go
  type CustomerGatewayGenerator (line 27) | type CustomerGatewayGenerator struct
    method createResources (line 31) | func (CustomerGatewayGenerator) createResources(cgws *ec2.DescribeCust...
    method InitResources (line 48) | func (g *CustomerGatewayGenerator) InitResources() error {

FILE: providers/aws/datapipeline.go
  type DataPipelineGenerator (line 26) | type DataPipelineGenerator struct
    method InitResources (line 30) | func (g *DataPipelineGenerator) InitResources() error {

FILE: providers/aws/devicefarm.go
  type DeviceFarmGenerator (line 26) | type DeviceFarmGenerator struct
    method InitResources (line 30) | func (g *DeviceFarmGenerator) InitResources() error {

FILE: providers/aws/docdb.go
  type DocDBGenerator (line 27) | type DocDBGenerator struct
    method InitResources (line 31) | func (g *DocDBGenerator) InitResources() error {
    method getClusters (line 53) | func (g *DocDBGenerator) getClusters(svc *docdb.Client) error {
    method getSubnetGroups (line 88) | func (g *DocDBGenerator) getSubnetGroups(svc *docdb.Client) error {
    method getParameterGroups (line 113) | func (g *DocDBGenerator) getParameterGroups(svc *docdb.Client) error {
    method PostConvertHook (line 139) | func (g *DocDBGenerator) PostConvertHook() error {

FILE: providers/aws/dx.go
  type DirectConnectGenerator (line 28) | type DirectConnectGenerator struct
    method getDirectConnectGateways (line 32) | func (g *DirectConnectGenerator) getDirectConnectGateways(svc *directc...
    method getDirectConnectConnections (line 63) | func (g *DirectConnectGenerator) getDirectConnectConnections(svc *dire...
    method getDirectConnectVritualInterfaces (line 82) | func (g *DirectConnectGenerator) getDirectConnectVritualInterfaces(svc...
    method InitResources (line 114) | func (g *DirectConnectGenerator) InitResources() error {

FILE: providers/aws/dynamodb.go
  type DynamoDbGenerator (line 26) | type DynamoDbGenerator struct
    method InitResources (line 30) | func (g *DynamoDbGenerator) InitResources() error {
    method PostConvertHook (line 55) | func (g *DynamoDbGenerator) PostConvertHook() error {

FILE: providers/aws/ebs.go
  type EbsGenerator (line 32) | type EbsGenerator struct
    method volumeAttachmentID (line 36) | func (g *EbsGenerator) volumeAttachmentID(device, volumeID, instanceID...
    method InitResources (line 40) | func (g *EbsGenerator) InitResources() error {

FILE: providers/aws/ec2.go
  type Ec2Generator (line 30) | type Ec2Generator struct
    method InitResources (line 34) | func (g *Ec2Generator) InitResources() error {
    method PostConvertHook (line 92) | func (g *Ec2Generator) PostConvertHook() error {

FILE: providers/aws/ecr.go
  type EcrGenerator (line 28) | type EcrGenerator struct
    method InitResources (line 32) | func (g *EcrGenerator) InitResources() error {
    method PostConvertHook (line 84) | func (g *EcrGenerator) PostConvertHook() error {

FILE: providers/aws/ecrpublic.go
  type EcrPublicGenerator (line 27) | type EcrPublicGenerator struct
    method InitResources (line 31) | func (g *EcrPublicGenerator) InitResources() error {

FILE: providers/aws/ecs.go
  type EcsGenerator (line 29) | type EcsGenerator struct
    method InitResources (line 33) | func (g *EcsGenerator) InitResources() error {
    method PostConvertHook (line 144) | func (g *EcsGenerator) PostConvertHook() error {

FILE: providers/aws/efs.go
  type EfsGenerator (line 28) | type EfsGenerator struct
    method InitResources (line 32) | func (g *EfsGenerator) InitResources() error {
    method loadFileSystem (line 47) | func (g *EfsGenerator) loadFileSystem(svc *efs.Client) error {
    method loadAccessPoint (line 101) | func (g *EfsGenerator) loadAccessPoint(svc *efs.Client) error {
    method PostConvertHook (line 122) | func (g *EfsGenerator) PostConvertHook() error {

FILE: providers/aws/eip.go
  type ElasticIPGenerator (line 28) | type ElasticIPGenerator struct
    method createElasticIpsResources (line 32) | func (g *ElasticIPGenerator) createElasticIpsResources(svc *ec2.Client...
    method InitResources (line 56) | func (g *ElasticIPGenerator) InitResources() error {

FILE: providers/aws/eks.go
  type EksGenerator (line 27) | type EksGenerator struct
    method getNodeGroups (line 31) | func (g *EksGenerator) getNodeGroups(clusterName string, svc *eks.Clie...
    method InitResources (line 53) | func (g *EksGenerator) InitResources() error {
    method PostConvertHook (line 82) | func (g *EksGenerator) PostConvertHook() error {

FILE: providers/aws/elastic_beanstalk.go
  type BeanstalkGenerator (line 27) | type BeanstalkGenerator struct
    method InitResources (line 31) | func (g *BeanstalkGenerator) InitResources() error {
    method addApplications (line 46) | func (g *BeanstalkGenerator) addApplications(client *elasticbeanstalk....
    method addEnvironments (line 63) | func (g *BeanstalkGenerator) addEnvironments(client *elasticbeanstalk....

FILE: providers/aws/elasticache.go
  type ElastiCacheGenerator (line 28) | type ElastiCacheGenerator struct
    method loadCacheClusters (line 32) | func (g *ElastiCacheGenerator) loadCacheClusters(svc *elasticache.Clie...
    method loadParameterGroups (line 79) | func (g *ElastiCacheGenerator) loadParameterGroups(svc *elasticache.Cl...
    method loadSubnetGroups (line 103) | func (g *ElastiCacheGenerator) loadSubnetGroups(svc *elasticache.Clien...
    method loadReplicationGroups (line 124) | func (g *ElastiCacheGenerator) loadReplicationGroups(svc *elasticache....
    method InitResources (line 149) | func (g *ElastiCacheGenerator) InitResources() error {
    method PostConvertHook (line 172) | func (g *ElastiCacheGenerator) PostConvertHook() error {

FILE: providers/aws/elb.go
  type ElbGenerator (line 26) | type ElbGenerator struct
    method InitResources (line 34) | func (g *ElbGenerator) InitResources() error {

FILE: providers/aws/emr.go
  type EmrGenerator (line 26) | type EmrGenerator struct
    method InitResources (line 30) | func (g *EmrGenerator) InitResources() error {
    method addClusters (line 45) | func (g *EmrGenerator) addClusters(client *emr.Client) error {
    method addSecurityConfigurations (line 65) | func (g *EmrGenerator) addSecurityConfigurations(client *emr.Client) e...

FILE: providers/aws/eni.go
  type EniGenerator (line 27) | type EniGenerator struct
    method createResources (line 31) | func (EniGenerator) createResources(enis *ec2.DescribeNetworkInterface...
    method InitResources (line 47) | func (g *EniGenerator) InitResources() error {
    method PostConvertHook (line 64) | func (g *EniGenerator) PostConvertHook() error {

FILE: providers/aws/es.go
  type EsGenerator (line 26) | type EsGenerator struct
    method InitResources (line 30) | func (g *EsGenerator) InitResources() error {
    method PostConvertHook (line 59) | func (g *EsGenerator) PostConvertHook() error {

FILE: providers/aws/firehose.go
  type FirehoseGenerator (line 25) | type FirehoseGenerator struct
    method createResources (line 29) | func (g *FirehoseGenerator) createResources(streamNames []string) []te...
    method InitResources (line 46) | func (g *FirehoseGenerator) InitResources() error {
    method PostConvertHook (line 75) | func (g *FirehoseGenerator) PostConvertHook() error {

FILE: providers/aws/glue.go
  type GlueGenerator (line 24) | type GlueGenerator struct
    method loadGlueCrawlers (line 28) | func (g *GlueGenerator) loadGlueCrawlers(svc *glue.Client) error {
    method loadGlueCatalogDatabase (line 47) | func (g *GlueGenerator) loadGlueCatalogDatabase(svc *glue.Client, acco...
    method loadGlueCatalogTable (line 71) | func (g *GlueGenerator) loadGlueCatalogTable(svc *glue.Client, account...
    method loadGlueJobs (line 95) | func (g *GlueGenerator) loadGlueJobs(svc *glue.Client) error {
    method loadGlueTriggers (line 114) | func (g *GlueGenerator) loadGlueTriggers(svc *glue.Client) error {
    method InitResources (line 137) | func (g *GlueGenerator) InitResources() error {

FILE: providers/aws/iam.go
  type IamGenerator (line 33) | type IamGenerator struct
    method InitResources (line 37) | func (g *IamGenerator) InitResources() error {
    method getRoles (line 72) | func (g *IamGenerator) getRoles(svc *iam.Client) error {
    method getUsers (line 131) | func (g *IamGenerator) getUsers(svc *iam.Client) error {
    method getUserGroup (line 171) | func (g *IamGenerator) getUserGroup(svc *iam.Client, userName *string)...
    method getUserPolices (line 198) | func (g *IamGenerator) getUserPolices(svc *iam.Client, userName *strin...
    method getUserPolicyAttachment (line 220) | func (g *IamGenerator) getUserPolicyAttachment(svc *iam.Client, userNa...
    method getPolicies (line 246) | func (g *IamGenerator) getPolicies(svc *iam.Client) error {
    method getGroups (line 268) | func (g *IamGenerator) getGroups(svc *iam.Client) error {
    method getGroupPolicies (line 290) | func (g *IamGenerator) getGroupPolicies(svc *iam.Client, group types.G...
    method getAttachedGroupPolicies (line 313) | func (g *IamGenerator) getAttachedGroupPolicies(svc *iam.Client, group...
    method getInstanceProfiles (line 342) | func (g *IamGenerator) getInstanceProfiles(svc *iam.Client) error {
    method getUserAccessKey (line 367) | func (g *IamGenerator) getUserAccessKey(svc *iam.Client, userName *str...
    method PostConvertHook (line 394) | func (g *IamGenerator) PostConvertHook() error {

FILE: providers/aws/identitystore.go
  type IdentityStoreGenerator (line 30) | type IdentityStoreGenerator struct
    method GetIdentityStoreId (line 34) | func (g *IdentityStoreGenerator) GetIdentityStoreId() (*string, error) {
    method InitGroupResources (line 52) | func (g *IdentityStoreGenerator) InitGroupResources(identityStoreId st...
    method InitGroupMembershipResources (line 90) | func (g *IdentityStoreGenerator) InitGroupMembershipResources(identity...
    method InitUserResources (line 134) | func (g *IdentityStoreGenerator) InitUserResources(identityStoreId str...
    method InitResources (line 171) | func (g *IdentityStoreGenerator) InitResources() error {

FILE: providers/aws/igw.go
  type IgwGenerator (line 27) | type IgwGenerator struct
    method createResources (line 34) | func (g *IgwGenerator) createResources(igws *ec2.DescribeInternetGatew...
    method InitResources (line 51) | func (g *IgwGenerator) InitResources() error {

FILE: providers/aws/iot.go
  type IotGenerator (line 26) | type IotGenerator struct
    method InitResources (line 30) | func (g *IotGenerator) InitResources() error {
    method loadThingTypes (line 53) | func (g *IotGenerator) loadThingTypes(svc *iot.Client) error {
    method loadThings (line 74) | func (g *IotGenerator) loadThings(svc *iot.Client) error {
    method loadTopicRules (line 95) | func (g *IotGenerator) loadTopicRules(svc *iot.Client) error {
    method loadRoleAliases (line 111) | func (g *IotGenerator) loadRoleAliases(svc *iot.Client) error {

FILE: providers/aws/kinesis.go
  type KinesisGenerator (line 26) | type KinesisGenerator struct
    method createResources (line 30) | func (g *KinesisGenerator) createResources(streamNames []string) []ter...
    method InitResources (line 45) | func (g *KinesisGenerator) InitResources() error {

FILE: providers/aws/kms.go
  type KmsGenerator (line 28) | type KmsGenerator struct
    method InitResources (line 32) | func (g *KmsGenerator) InitResources() error {
    method addKeys (line 47) | func (g *KmsGenerator) addKeys(client *kms.Client) error {
    method addAliases (line 84) | func (g *KmsGenerator) addAliases(client *kms.Client) error {
    method addGrants (line 118) | func (g *KmsGenerator) addGrants(keyID *string, client *kms.Client) {

FILE: providers/aws/lambda.go
  type LambdaGenerator (line 30) | type LambdaGenerator struct
    method InitResources (line 44) | func (g *LambdaGenerator) InitResources() error {
    method PostConvertHook (line 63) | func (g *LambdaGenerator) PostConvertHook() error {
    method addFunctions (line 86) | func (g *LambdaGenerator) addFunctions(svc *lambda.Client) error {
    method addEventSourceMappings (line 167) | func (g *LambdaGenerator) addEventSourceMappings(svc *lambda.Client) e...
    method addLayerVersions (line 192) | func (g *LambdaGenerator) addLayerVersions(svc *lambda.Client) error {
  type Statement (line 34) | type Statement struct
  type Policy (line 38) | type Policy struct

FILE: providers/aws/logs.go
  type LogsGenerator (line 27) | type LogsGenerator struct
    method createResources (line 31) | func (g *LogsGenerator) createResources(logGroups *cloudwatchlogs.Desc...
    method InitResources (line 59) | func (g *LogsGenerator) InitResources() error {
    method PostConvertHook (line 78) | func (g *LogsGenerator) PostConvertHook() error {

FILE: providers/aws/media_package.go
  type MediaPackageGenerator (line 26) | type MediaPackageGenerator struct
    method InitResources (line 30) | func (g *MediaPackageGenerator) InitResources() error {

FILE: providers/aws/media_store.go
  type MediaStoreGenerator (line 26) | type MediaStoreGenerator struct
    method InitResources (line 30) | func (g *MediaStoreGenerator) InitResources() error {

FILE: providers/aws/medialive.go
  type MediaLiveGenerator (line 27) | type MediaLiveGenerator struct
    method InitResources (line 31) | func (g *MediaLiveGenerator) InitResources() error {
    method GetChannels (line 54) | func (g *MediaLiveGenerator) GetChannels(svc *medialive.Client) error {
    method GetInputs (line 75) | func (g *MediaLiveGenerator) GetInputs(svc *medialive.Client) error {
    method GetInputSecurityGroups (line 96) | func (g *MediaLiveGenerator) GetInputSecurityGroups(svc *medialive.Cli...

FILE: providers/aws/mq.go
  type MQGenerator (line 26) | type MQGenerator struct
    method loadBrokers (line 30) | func (g *MQGenerator) loadBrokers(svc *mq.Client) error {
    method InitResources (line 50) | func (g *MQGenerator) InitResources() error {

FILE: providers/aws/msk.go
  type MskGenerator (line 26) | type MskGenerator struct
    method InitResources (line 30) | func (g *MskGenerator) InitResources() error {
    method PostConvertHook (line 56) | func (g *MskGenerator) PostConvertHook() error {

FILE: providers/aws/nacl.go
  type NaclGenerator (line 26) | type NaclGenerator struct
    method createResources (line 30) | func (NaclGenerator) createResources(nacls *ec2.DescribeNetworkAclsOut...
    method InitResources (line 52) | func (g *NaclGenerator) InitResources() error {

FILE: providers/aws/nat_gateway.go
  type NatGatewayGenerator (line 27) | type NatGatewayGenerator struct
    method createResources (line 31) | func (g *NatGatewayGenerator) createResources(ngws *ec2.DescribeNatGat...
    method InitResources (line 48) | func (g *NatGatewayGenerator) InitResources() error {

FILE: providers/aws/opsworks.go
  type OpsworksGenerator (line 26) | type OpsworksGenerator struct
    method InitResources (line 30) | func (g *OpsworksGenerator) InitResources() error {
    method fetchApps (line 50) | func (g *OpsworksGenerator) fetchApps(stackID *string, svc *opsworks.C...
    method fetchLayers (line 69) | func (g *OpsworksGenerator) fetchLayers(stackID *string, svc *opsworks...
    method fetchInstances (line 115) | func (g *OpsworksGenerator) fetchInstances(stackID *string, svc *opswo...
    method fetchRdsInstances (line 133) | func (g *OpsworksGenerator) fetchRdsInstances(stackID *string, svc *op...
    method fetchStacks (line 157) | func (g *OpsworksGenerator) fetchStacks(svc *opsworks.Client) error {
    method fetchUserProfile (line 194) | func (g *OpsworksGenerator) fetchUserProfile(svc *opsworks.Client) err...

FILE: providers/aws/organization.go
  type OrganizationGenerator (line 30) | type OrganizationGenerator struct
    method traverseNode (line 34) | func (g *OrganizationGenerator) traverseNode(svc *organizations.Client...
    method InitResources (line 89) | func (g *OrganizationGenerator) InitResources() error {

FILE: providers/aws/qldb.go
  type QLDBGenerator (line 26) | type QLDBGenerator struct
    method InitResources (line 30) | func (g *QLDBGenerator) InitResources() error {

FILE: providers/aws/rds.go
  type RDSGenerator (line 28) | type RDSGenerator struct
    method loadDBClusters (line 32) | func (g *RDSGenerator) loadDBClusters(svc *rds.Client) error {
    method loadDBClusterSnapshots (line 53) | func (g *RDSGenerator) loadDBClusterSnapshots(svc *rds.Client) error {
    method loadDBProxies (line 74) | func (g *RDSGenerator) loadDBProxies(svc *rds.Client) error {
    method loadDBInstances (line 95) | func (g *RDSGenerator) loadDBInstances(svc *rds.Client) error {
    method loadDBInstanceSnapshots (line 118) | func (g *RDSGenerator) loadDBInstanceSnapshots(svc *rds.Client) error {
    method loadDBParameterGroups (line 139) | func (g *RDSGenerator) loadDBParameterGroups(svc *rds.Client) error {
    method loadDBSubnetGroups (line 163) | func (g *RDSGenerator) loadDBSubnetGroups(svc *rds.Client) error {
    method loadOptionGroups (line 184) | func (g *RDSGenerator) loadOptionGroups(svc *rds.Client) error {
    method loadEventSubscription (line 208) | func (g *RDSGenerator) loadEventSubscription(svc *rds.Client) error {
    method loadRDSGlobalClusters (line 229) | func (g *RDSGenerator) loadRDSGlobalClusters(svc *rds.Client) error {
    method InitResources (line 254) | func (g *RDSGenerator) InitResources() error {
    method PostConvertHook (line 297) | func (g *RDSGenerator) PostConvertHook() error {

FILE: providers/aws/redshift.go
  type RedshiftGenerator (line 30) | type RedshiftGenerator struct
    method loadClusters (line 34) | func (g *RedshiftGenerator) loadClusters(svc *redshift.Client) error {
    method loadParameterGroups (line 55) | func (g *RedshiftGenerator) loadParameterGroups(svc *redshift.Client) ...
    method loadSubnetGroups (line 79) | func (g *RedshiftGenerator) loadSubnetGroups(svc *redshift.Client) err...
    method loadEventSubscription (line 100) | func (g *RedshiftGenerator) loadEventSubscription(svc *redshift.Client...
    method loadSnapshotSchedules (line 121) | func (g *RedshiftGenerator) loadSnapshotSchedules(svc *redshift.Client...
    method InitResources (line 157) | func (g *RedshiftGenerator) InitResources() error {
    method PostConvertHook (line 183) | func (g *RedshiftGenerator) PostConvertHook() error {

FILE: providers/aws/resourcegroups.go
  type ResourceGroupsGenerator (line 26) | type ResourceGroupsGenerator struct
    method InitResources (line 30) | func (g *ResourceGroupsGenerator) InitResources() error {

FILE: providers/aws/route53.go
  type Route53Generator (line 33) | type Route53Generator struct
    method createZonesResources (line 37) | func (g *Route53Generator) createZonesResources(svc *route53.Client) [...
    method createRecordsResources (line 67) | func (Route53Generator) createRecordsResources(svc *route53.Client, zo...
    method createHealthChecksResources (line 111) | func (Route53Generator) createHealthChecksResources(svc *route53.Clien...
    method InitResources (line 138) | func (g *Route53Generator) InitResources() error {
    method PostConvertHook (line 152) | func (g *Route53Generator) PostConvertHook() error {
  function wildcardUnescape (line 187) | func wildcardUnescape(s string) string {
  function cleanZoneID (line 195) | func cleanZoneID(id string) string {
  function cleanPrefix (line 200) | func cleanPrefix(id, prefix string) string {

FILE: providers/aws/route_table.go
  type RouteTableGenerator (line 28) | type RouteTableGenerator struct
    method createRouteTablesResources (line 32) | func (g *RouteTableGenerator) createRouteTablesResources(svc *ec2.Clie...
    method InitResources (line 103) | func (g *RouteTableGenerator) InitResources() error {

FILE: providers/aws/s3.go
  type S3Generator (line 32) | type S3Generator struct
    method createResources (line 39) | func (g *S3Generator) createResources(config aws.Config, buckets *s3.L...
    method InitResources (line 88) | func (g *S3Generator) InitResources() error {
    method PostConvertHook (line 105) | func (g *S3Generator) PostConvertHook() error {

FILE: providers/aws/secretsmanager.go
  type SecretsManagerGenerator (line 26) | type SecretsManagerGenerator struct
    method InitResources (line 30) | func (g *SecretsManagerGenerator) InitResources() error {

FILE: providers/aws/securityhub.go
  type SecurityhubGenerator (line 27) | type SecurityhubGenerator struct
    method InitResources (line 31) | func (g *SecurityhubGenerator) InitResources() error {
    method addAccount (line 58) | func (g *SecurityhubGenerator) addAccount(client *securityhub.Client, ...
    method addMembers (line 78) | func (g *SecurityhubGenerator) addMembers(svc *securityhub.Client, acc...
    method addStandardsSubscription (line 110) | func (g *SecurityhubGenerator) addStandardsSubscription(svc *securityh...

FILE: providers/aws/servicecatalog.go
  type ServiceCatalogGenerator (line 26) | type ServiceCatalogGenerator struct
    method InitResources (line 30) | func (g *ServiceCatalogGenerator) InitResources() error {

FILE: providers/aws/ses.go
  type SesGenerator (line 26) | type SesGenerator struct
    method InitResources (line 30) | func (g *SesGenerator) InitResources() error {
    method loadDomainIdentities (line 56) | func (g *SesGenerator) loadDomainIdentities(svc *ses.Client) error {
    method loadMailIdentities (line 77) | func (g *SesGenerator) loadMailIdentities(svc *ses.Client) error {
    method loadTemplates (line 98) | func (g *SesGenerator) loadTemplates(svc *ses.Client) error {
    method loadConfigurationSets (line 115) | func (g *SesGenerator) loadConfigurationSets(svc *ses.Client) error {
    method loadRuleSets (line 132) | func (g *SesGenerator) loadRuleSets(svc *ses.Client) error {

FILE: providers/aws/sfn.go
  type SfnGenerator (line 12) | type SfnGenerator struct
    method InitResources (line 16) | func (g *SfnGenerator) InitResources() error {

FILE: providers/aws/sg.go
  type void (line 36) | type void struct
  type SecurityGenerator (line 40) | type SecurityGenerator struct
    method createResources (line 59) | func (SecurityGenerator) createResources(securityGroups []types.Securi...
    method InitResources (line 242) | func (g *SecurityGenerator) InitResources() error {
    method PostConvertHook (line 265) | func (g *SecurityGenerator) PostConvertHook() error {
    method sortRules (line 290) | func (g *SecurityGenerator) sortRules(rules []interface{}) {
    method sortIfExist (line 302) | func (g *SecurityGenerator) sortIfExist(attribute string, ruleMap map[...
  type ByGroupPair (line 44) | type ByGroupPair
    method Len (line 46) | func (b ByGroupPair) Len() int      { return len(b) }
    method Swap (line 47) | func (b ByGroupPair) Swap(i, j int) { b[i], b[j] = b[j], b[i] }
    method Less (line 48) | func (b ByGroupPair) Less(i, j int) bool {
  function processRule (line 101) | func processRule(rule types.IpPermission, ruleType string, sg types.Secu...
  function baseRuleAttributes (line 158) | func baseRuleAttributes(ruleType string, rule types.IpPermission, sg typ...
  function findSgsToMoveOut (line 174) | func findSgsToMoveOut(securityGroups []types.SecurityGroup) []string {
  function elementAlreadyFound (line 230) | func elementAlreadyFound(resultingSet map[string]void, v []graph.Node, i...
  function permissionID (line 310) | func permissionID(sgID, ruleType, groupID string, ip types.IpPermission)...
  function fromPort (line 358) | func fromPort(ip types.IpPermission) int {
  function toPort (line 371) | func toPort(ip types.IpPermission) int {
  function ipRange (line 384) | func ipRange(rule types.IpPermission) []string {
  function ip6Range (line 392) | func ip6Range(rule types.IpPermission) []string {
  function prefixes (line 400) | func prefixes(rule types.IpPermission) []string {

FILE: providers/aws/sg_test.go
  function TestEmptySgs (line 25) | func TestEmptySgs(t *testing.T) {
  function Test1CycleReference (line 35) | func Test1CycleReference(t *testing.T) {
  function Test2CycleReference (line 60) | func Test2CycleReference(t *testing.T) {
  function TestNoCycleReference (line 97) | func TestNoCycleReference(t *testing.T) {
  function Test3Cycle1CycleReference (line 128) | func Test3Cycle1CycleReference(t *testing.T) {

FILE: providers/aws/sns.go
  type SnsGenerator (line 29) | type SnsGenerator struct
    method isSupportedSubscription (line 34) | func (g *SnsGenerator) isSupportedSubscription(protocol, subscriptionI...
    method InitResources (line 38) | func (g *SnsGenerator) InitResources() error {
    method PostConvertHook (line 92) | func (g *SnsGenerator) PostConvertHook() error {

FILE: providers/aws/sqs.go
  type SqsGenerator (line 31) | type SqsGenerator struct
    method InitResources (line 35) | func (g *SqsGenerator) InitResources() error {
    method PostConvertHook (line 72) | func (g *SqsGenerator) PostConvertHook() error {

FILE: providers/aws/ssm.go
  type SsmGenerator (line 27) | type SsmGenerator struct
    method InitResources (line 31) | func (g *SsmGenerator) InitResources() error {

FILE: providers/aws/subnet.go
  type SubnetGenerator (line 26) | type SubnetGenerator struct
    method createResources (line 30) | func (SubnetGenerator) createResources(subnets *ec2.DescribeSubnetsOut...
    method InitResources (line 49) | func (g *SubnetGenerator) InitResources() error {

FILE: providers/aws/swf.go
  type SWFGenerator (line 11) | type SWFGenerator struct
    method InitResources (line 15) | func (g *SWFGenerator) InitResources() error {

FILE: providers/aws/transit_gateway.go
  type TransitGatewayGenerator (line 28) | type TransitGatewayGenerator struct
    method getTransitGateways (line 32) | func (g *TransitGatewayGenerator) getTransitGateways(svc *ec2.Client) ...
    method getTransitGatewayRouteTables (line 52) | func (g *TransitGatewayGenerator) getTransitGatewayRouteTables(svc *ec...
    method getTransitGatewayVpcAttachments (line 77) | func (g *TransitGatewayGenerator) getTransitGatewayVpcAttachments(svc ...
    method InitResources (line 100) | func (g *TransitGatewayGenerator) InitResources() error {

FILE: providers/aws/vgw.go
  type VpnGatewayGenerator (line 27) | type VpnGatewayGenerator struct
    method createResources (line 31) | func (VpnGatewayGenerator) createResources(vpnGws *ec2.DescribeVpnGate...
    method InitResources (line 48) | func (g *VpnGatewayGenerator) InitResources() error {

FILE: providers/aws/vpc.go
  type VpcGenerator (line 27) | type VpcGenerator struct
    method createResources (line 31) | func (VpcGenerator) createResources(vpcs *ec2.DescribeVpcsOutput) []te...
    method InitResources (line 48) | func (g *VpcGenerator) InitResources() error {

FILE: providers/aws/vpc_endpoint.go
  type VpcEndpointGenerator (line 27) | type VpcEndpointGenerator struct
    method createResources (line 31) | func (g *VpcEndpointGenerator) createResources(vpceps *ec2.DescribeVpc...
    method InitResources (line 48) | func (g *VpcEndpointGenerator) InitResources() error {

FILE: providers/aws/vpc_peering.go
  type VpcPeeringConnectionGenerator (line 27) | type VpcPeeringConnectionGenerator struct
    method createResources (line 31) | func (g *VpcPeeringConnectionGenerator) createResources(peerings *ec2....
    method InitResources (line 48) | func (g *VpcPeeringConnectionGenerator) InitResources() error {

FILE: providers/aws/vpn_connection.go
  type VpnConnectionGenerator (line 27) | type VpnConnectionGenerator struct
    method createResources (line 31) | func (VpnConnectionGenerator) createResources(vpncs *ec2.DescribeVpnCo...
    method InitResources (line 48) | func (g *VpnConnectionGenerator) InitResources() error {

FILE: providers/aws/waf.go
  type WafGenerator (line 26) | type WafGenerator struct
    method InitResources (line 30) | func (g *WafGenerator) InitResources() error {
    method loadWebACL (line 77) | func (g *WafGenerator) loadWebACL(svc *waf.Client) error {
    method loadByteMatchSet (line 93) | func (g *WafGenerator) loadByteMatchSet(svc *waf.Client) error {
    method loadGeoMatchSet (line 109) | func (g *WafGenerator) loadGeoMatchSet(svc *waf.Client) error {
    method loadIPSet (line 125) | func (g *WafGenerator) loadIPSet(svc *waf.Client) error {
    method loadRateBasedRules (line 141) | func (g *WafGenerator) loadRateBasedRules(svc *waf.Client) error {
    method loadRegexMatchSets (line 157) | func (g *WafGenerator) loadRegexMatchSets(svc *waf.Client) error {
    method loadRegexPatternSets (line 173) | func (g *WafGenerator) loadRegexPatternSets(svc *waf.Client) error {
    method loadWafRules (line 189) | func (g *WafGenerator) loadWafRules(svc *waf.Client) error {
    method loadWafRuleGroups (line 205) | func (g *WafGenerator) loadWafRuleGroups(svc *waf.Client) error {
    method loadSizeConstraintSets (line 221) | func (g *WafGenerator) loadSizeConstraintSets(svc *waf.Client) error {
    method loadSQLInjectionMatchSets (line 237) | func (g *WafGenerator) loadSQLInjectionMatchSets(svc *waf.Client) error {
    method loadXSSMatchSet (line 253) | func (g *WafGenerator) loadXSSMatchSet(svc *waf.Client) error {

FILE: providers/aws/waf_regional.go
  type WafRegionalGenerator (line 24) | type WafRegionalGenerator struct
    method InitResources (line 28) | func (g *WafRegionalGenerator) InitResources() error {
    method loadWebACL (line 76) | func (g *WafRegionalGenerator) loadWebACL(svc *wafregional.Client) err...
    method loadByteMatchSet (line 92) | func (g *WafRegionalGenerator) loadByteMatchSet(svc *wafregional.Clien...
    method loadGeoMatchSet (line 108) | func (g *WafRegionalGenerator) loadGeoMatchSet(svc *wafregional.Client...
    method loadIPSet (line 124) | func (g *WafRegionalGenerator) loadIPSet(svc *wafregional.Client) error {
    method loadRateBasedRules (line 140) | func (g *WafRegionalGenerator) loadRateBasedRules(svc *wafregional.Cli...
    method loadRegexMatchSets (line 156) | func (g *WafRegionalGenerator) loadRegexMatchSets(svc *wafregional.Cli...
    method loadRegexPatternSets (line 172) | func (g *WafRegionalGenerator) loadRegexPatternSets(svc *wafregional.C...
    method loadWafRules (line 188) | func (g *WafRegionalGenerator) loadWafRules(svc *wafregional.Client) e...
    method loadWafRuleGroups (line 204) | func (g *WafRegionalGenerator) loadWafRuleGroups(svc *wafregional.Clie...
    method loadSizeConstraintSets (line 220) | func (g *WafRegionalGenerator) loadSizeConstraintSets(svc *wafregional...
    method loadSQLInjectionMatchSets (line 236) | func (g *WafRegionalGenerator) loadSQLInjectionMatchSets(svc *wafregio...
    method loadXSSMatchSet (line 252) | func (g *WafRegionalGenerator) loadXSSMatchSet(svc *wafregional.Client...

FILE: providers/aws/wafv2.go
  type Wafv2Generator (line 27) | type Wafv2Generator struct
    method InitResources (line 40) | func (g *Wafv2Generator) InitResources() error {
    method loadWebACL (line 66) | func (g *Wafv2Generator) loadWebACL(svc *wafv2.Client) error {
    method loadWebACLAssociations (line 96) | func (g *Wafv2Generator) loadWebACLAssociations(svc *wafv2.Client, web...
    method loadIPSet (line 121) | func (g *Wafv2Generator) loadIPSet(svc *wafv2.Client) error {
    method loadRegexPatternSets (line 143) | func (g *Wafv2Generator) loadRegexPatternSets(svc *wafv2.Client) error {
    method loadWafRuleGroups (line 165) | func (g *Wafv2Generator) loadWafRuleGroups(svc *wafv2.Client) error {
    method loadWebACLLoggingConfiguration (line 188) | func (g *Wafv2Generator) loadWebACLLoggingConfiguration(svc *wafv2.Cli...
  function NewWafv2CloudfrontGenerator (line 32) | func NewWafv2CloudfrontGenerator() *Wafv2Generator {
  function NewWafv2RegionalGenerator (line 36) | func NewWafv2RegionalGenerator() *Wafv2Generator {

FILE: providers/aws/workspaces.go
  type WorkspacesGenerator (line 26) | type WorkspacesGenerator struct
    method InitResources (line 30) | func (g *WorkspacesGenerator) InitResources() error {
    method loadWorkspaces (line 45) | func (g *WorkspacesGenerator) loadWorkspaces(svc *workspaces.Client) e...
    method loadWorkspacesIPGroup (line 72) | func (g *WorkspacesGenerator) loadWorkspacesIPGroup(svc *workspaces.Cl...

FILE: providers/aws/xray.go
  type XrayGenerator (line 12) | type XrayGenerator struct
    method InitResources (line 16) | func (g *XrayGenerator) InitResources() error {

FILE: providers/azure/analysis.go
  type AnalysisGenerator (line 27) | type AnalysisGenerator struct
    method listServiceServers (line 31) | func (g *AnalysisGenerator) listServiceServers() ([]terraformutils.Res...
    method InitResources (line 65) | func (g *AnalysisGenerator) InitResources() error {

FILE: providers/azure/app_service.go
  type AppServiceGenerator (line 14) | type AppServiceGenerator struct
    method listApps (line 18) | func (g AppServiceGenerator) listApps() ([]terraformutils.Resource, er...
    method InitResources (line 56) | func (g *AppServiceGenerator) InitResources() error {

FILE: providers/azure/application_gateway.go
  type ApplicationGatewayGenerator (line 27) | type ApplicationGatewayGenerator struct
    method createResources (line 31) | func (g ApplicationGatewayGenerator) createResources(ctx context.Conte...
    method InitResources (line 49) | func (g *ApplicationGatewayGenerator) InitResources() error {

FILE: providers/azure/azure_provider.go
  type AzureProvider (line 33) | type AzureProvider struct
    method setEnvConfig (line 40) | func (p *AzureProvider) setEnvConfig() error {
    method getAuthorizer (line 87) | func (p *AzureProvider) getAuthorizer() (autorest.Authorizer, error) {
    method Init (line 120) | func (p *AzureProvider) Init(args []string) error {
    method GetName (line 136) | func (p *AzureProvider) GetName() string {
    method GetProviderData (line 140) | func (p *AzureProvider) GetProviderData(arg ...string) map[string]inte...
    method GetResourceConnections (line 165) | func (AzureProvider) GetResourceConnections() map[string]map[string][]...
    method GetSupportedService (line 350) | func (p *AzureProvider) GetSupportedService() map[string]terraformutil...
    method InitService (line 390) | func (p *AzureProvider) InitService(serviceName string, verbose bool) ...

FILE: providers/azure/azure_service.go
  type AzureService (line 25) | type AzureService struct
    method getClientArgs (line 29) | func (az *AzureService) getClientArgs() (subscriptionID string, resour...
    method AppendSimpleResource (line 37) | func (az *AzureService) AppendSimpleResource(id string, resourceName s...
    method AppendSimpleResourceWithDuplicateCheck (line 42) | func (az *AzureService) AppendSimpleResourceWithDuplicateCheck(id stri...
    method DuplicateCheck (line 53) | func (az *AzureService) DuplicateCheck(id string, resourceName string,...
    method appendSimpleAssociation (line 70) | func (az *AzureService) appendSimpleAssociation(id string, linkedResou...

FILE: providers/azure/container.go
  type ContainerGenerator (line 28) | type ContainerGenerator struct
    method listAndAddForContainerGroup (line 32) | func (g *ContainerGenerator) listAndAddForContainerGroup() ([]terrafor...
    method listRegistryWebhooks (line 71) | func (g *ContainerGenerator) listRegistryWebhooks(resourceGroupName st...
    method listAndAddForContainerRegistry (line 100) | func (g *ContainerGenerator) listAndAddForContainerRegistry() ([]terra...
    method InitResources (line 150) | func (g *ContainerGenerator) InitResources() error {

FILE: providers/azure/cosmosdb.go
  type CosmosDBGenerator (line 27) | type CosmosDBGenerator struct
    method listSQLDatabasesAndContainersBehind (line 31) | func (g *CosmosDBGenerator) listSQLDatabasesAndContainersBehind(resour...
    method listTables (line 81) | func (g *CosmosDBGenerator) listTables(resourceGroupName string, accou...
    method listAndAddForDatabaseAccounts (line 105) | func (g *CosmosDBGenerator) listAndAddForDatabaseAccounts() ([]terrafo...
    method InitResources (line 155) | func (g *CosmosDBGenerator) InitResources() error {

FILE: providers/azure/data_factory.go
  type DataFactoryGenerator (line 28) | type DataFactoryGenerator struct
    method appendResourceFrom (line 115) | func (az *DataFactoryGenerator) appendResourceFrom(resources []terrafo...
    method listFactories (line 129) | func (az *DataFactoryGenerator) listFactories() ([]datafactory.Factory...
    method createDataFactoryResources (line 158) | func (az *DataFactoryGenerator) createDataFactoryResources(dataFactori...
    method createIntegrationRuntimesResources (line 182) | func (az *DataFactoryGenerator) createIntegrationRuntimesResources(dat...
    method createLinkedServiceResources (line 210) | func (az *DataFactoryGenerator) createLinkedServiceResources(dataFacto...
    method createPipelineResources (line 237) | func (az *DataFactoryGenerator) createPipelineResources(dataFactories ...
    method createPipelineTriggerScheduleResources (line 264) | func (az *DataFactoryGenerator) createPipelineTriggerScheduleResources...
    method createDataFlowResources (line 291) | func (az *DataFactoryGenerator) createDataFlowResources(dataFactories ...
    method createPipelineDatasetResources (line 318) | func (az *DataFactoryGenerator) createPipelineDatasetResources(dataFac...
    method InitResources (line 345) | func (az *DataFactoryGenerator) InitResources() error {
    method PostConvertHook (line 374) | func (az *DataFactoryGenerator) PostConvertHook() error {
  function getResourceTypeFrom (line 82) | func getResourceTypeFrom(azureResourceName string) string {
  function getFieldFrom (line 86) | func getFieldFrom(v interface{}, field string) reflect.Value {
  function getFieldAsString (line 98) | func getFieldAsString(v interface{}, field string) string {
  method appendResourceAs (line 106) | func (az *AzureService) appendResourceAs(resources []terraformutils.Reso...
  function getIntegrationRuntimeType (line 166) | func getIntegrationRuntimeType(properties interface{}) string {

FILE: providers/azure/database.go
  type DatabasesGenerator (line 31) | type DatabasesGenerator struct
    method getMariaDBServers (line 35) | func (g *DatabasesGenerator) getMariaDBServers() ([]mariadb.Server, er...
    method createMariaDBServerResources (line 60) | func (g *DatabasesGenerator) createMariaDBServerResources(servers []ma...
    method createMariaDBConfigurationResources (line 79) | func (g *DatabasesGenerator) createMariaDBConfigurationResources(serve...
    method createMariaDBDatabaseResources (line 112) | func (g *DatabasesGenerator) createMariaDBDatabaseResources(servers []...
    method createMariaDBFirewallRuleResources (line 145) | func (g *DatabasesGenerator) createMariaDBFirewallRuleResources(server...
    method createMariaDBVirtualNetworkRuleResources (line 177) | func (g *DatabasesGenerator) createMariaDBVirtualNetworkRuleResources(...
    method getMySQLServers (line 213) | func (g *DatabasesGenerator) getMySQLServers() ([]mysql.Server, error) {
    method createMySQLServerResources (line 239) | func (g *DatabasesGenerator) createMySQLServerResources(servers []mysq...
    method createMySQLConfigurationResources (line 258) | func (g *DatabasesGenerator) createMySQLConfigurationResources(servers...
    method createMySQLDatabaseResources (line 291) | func (g *DatabasesGenerator) createMySQLDatabaseResources(servers []my...
    method createMySQLFirewallRuleResources (line 323) | func (g *DatabasesGenerator) createMySQLFirewallRuleResources(servers ...
    method createMySQLVirtualNetworkRuleResources (line 356) | func (g *DatabasesGenerator) createMySQLVirtualNetworkRuleResources(se...
    method getPostgreSQLServers (line 395) | func (g *DatabasesGenerator) getPostgreSQLServers() ([]postgresql.Serv...
    method createPostgreSQLServerResources (line 422) | func (g *DatabasesGenerator) createPostgreSQLServerResources(servers [...
    method createPostgreSQLDatabaseResources (line 441) | func (g *DatabasesGenerator) createPostgreSQLDatabaseResources(servers...
    method createPostgreSQLConfigurationResources (line 473) | func (g *DatabasesGenerator) createPostgreSQLConfigurationResources(se...
    method createPostgreSQLFirewallRuleResources (line 504) | func (g *DatabasesGenerator) createPostgreSQLFirewallRuleResources(ser...
    method createPostgreSQLVirtualNetworkRuleResources (line 536) | func (g *DatabasesGenerator) createPostgreSQLVirtualNetworkRuleResourc...
    method getSQLServers (line 573) | func (g *DatabasesGenerator) getSQLServers() ([]sql.Server, error) {
    method createSQLServerResources (line 606) | func (g *DatabasesGenerator) createSQLServerResources(servers []sql.Se...
    method createSQLDatabaseResources (line 625) | func (g *DatabasesGenerator) createSQLDatabaseResources(servers []sql....
    method createSQLFirewallRuleResources (line 657) | func (g *DatabasesGenerator) createSQLFirewallRuleResources(servers []...
    method createSQLVirtualNetworkRuleResources (line 689) | func (g *DatabasesGenerator) createSQLVirtualNetworkRuleResources(serv...
    method createSQLElasticPoolResources (line 726) | func (g *DatabasesGenerator) createSQLElasticPoolResources(servers []s...
    method createSQLFailoverResources (line 758) | func (g *DatabasesGenerator) createSQLFailoverResources(servers []sql....
    method createSQLADAdministratorResources (line 797) | func (g *DatabasesGenerator) createSQLADAdministratorResources(servers...
    method InitResources (line 830) | func (g *DatabasesGenerator) InitResources() error {
    method PostConvertHook (line 920) | func (g *DatabasesGenerator) PostConvertHook() error {

FILE: providers/azure/databricks.go
  type DatabricksGenerator (line 24) | type DatabricksGenerator struct
    method listWorkspaces (line 28) | func (az *DatabricksGenerator) listWorkspaces() ([]databricks.Workspac...
    method AppendWorkspace (line 57) | func (az *DatabricksGenerator) AppendWorkspace(workspace *databricks.W...
    method InitResources (line 61) | func (az *DatabricksGenerator) InitResources() error {

FILE: providers/azure/disk.go
  type DiskGenerator (line 27) | type DiskGenerator struct
    method createResources (line 31) | func (g DiskGenerator) createResources(diskListIterator compute.DiskLi...
    method InitResources (line 49) | func (g *DiskGenerator) InitResources() error {

FILE: providers/azure/dns.go
  type DNSGenerator (line 28) | type DNSGenerator struct
    method listRecordSets (line 32) | func (g *DNSGenerator) listRecordSets(resourceGroupName string, zoneNa...
    method listAndAddForDNSZone (line 79) | func (g *DNSGenerator) listAndAddForDNSZone() ([]terraformutils.Resour...
    method InitResources (line 131) | func (g *DNSGenerator) InitResources() error {

FILE: providers/azure/eventhub.go
  type EventHubGenerator (line 24) | type EventHubGenerator struct
    method listNamespaces (line 28) | func (az *EventHubGenerator) listNamespaces() ([]eventhub.EHNamespace,...
    method AppendNamespace (line 57) | func (az *EventHubGenerator) AppendNamespace(namespace *eventhub.EHNam...
    method appendEventHubs (line 61) | func (az *EventHubGenerator) appendEventHubs(namespace *eventhub.EHNam...
    method appendConsumerGroups (line 86) | func (az *EventHubGenerator) appendConsumerGroups(namespace *eventhub....
    method appendAuthorizationRules (line 106) | func (az *EventHubGenerator) appendAuthorizationRules(namespace *event...
    method InitResources (line 127) | func (az *EventHubGenerator) InitResources() error {

FILE: providers/azure/helper.go
  type ResourceID (line 30) | type ResourceID struct
  function ParseAzureResourceID (line 41) | func ParseAzureResourceID(id string) (*ResourceID, error) {
  function GenerateRandomString (line 111) | func GenerateRandomString(strlen int) string {
  function asHereDoc (line 120) | func asHereDoc(json string) string {

FILE: providers/azure/keyvault.go
  type KeyVaultGenerator (line 27) | type KeyVaultGenerator struct
    method createResources (line 31) | func (g KeyVaultGenerator) createResources(ctx context.Context, client...
    method createResourcesByResourceGroup (line 53) | func (g KeyVaultGenerator) createResourcesByResourceGroup(ctx context....
    method InitResources (line 75) | func (g *KeyVaultGenerator) InitResources() error {

FILE: providers/azure/load_balancer.go
  type LoadBalancerGenerator (line 28) | type LoadBalancerGenerator struct
    method listLoadBalancerProbes (line 32) | func (g *LoadBalancerGenerator) listLoadBalancerProbes(resourceGroupNa...
    method listInboundNatRules (line 77) | func (g *LoadBalancerGenerator) listInboundNatRules(resourceGroupName ...
    method listLoadBalancerBackendAddressPools (line 117) | func (g *LoadBalancerGenerator) listLoadBalancerBackendAddressPools(re...
    method listAndAddForLoadBalancers (line 156) | func (g *LoadBalancerGenerator) listAndAddForLoadBalancers() ([]terraf...
    method InitResources (line 220) | func (g *LoadBalancerGenerator) InitResources() error {

FILE: providers/azure/management_lock.go
  type ManagementLockGenerator (line 24) | type ManagementLockGenerator struct
    method listResources (line 28) | func (az *ManagementLockGenerator) listResources() ([]locks.Management...
    method appendResource (line 57) | func (az *ManagementLockGenerator) appendResource(resource *locks.Mana...
    method InitResources (line 61) | func (az *ManagementLockGenerator) InitResources() error {

FILE: providers/azure/network_interface.go
  type NetworkInterfaceGenerator (line 27) | type NetworkInterfaceGenerator struct
    method createResources (line 31) | func (g NetworkInterfaceGenerator) createResources(interfaceListResult...
    method InitResources (line 49) | func (g *NetworkInterfaceGenerator) InitResources() error {

FILE: providers/azure/network_security_group.go
  type NetworkSecurityGroupGenerator (line 24) | type NetworkSecurityGroupGenerator struct
    method listResources (line 28) | func (az *NetworkSecurityGroupGenerator) listResources() ([]network.Se...
    method appendResource (line 57) | func (az *NetworkSecurityGroupGenerator) appendResource(resource *netw...
    method appendRules (line 61) | func (az *NetworkSecurityGroupGenerator) appendRules(parent *network.S...
    method InitResources (line 81) | func (az *NetworkSecurityGroupGenerator) InitResources() error {

FILE: providers/azure/network_watcher.go
  type NetworkWatcherGenerator (line 24) | type NetworkWatcherGenerator struct
    method listResources (line 28) | func (az *NetworkWatcherGenerator) listResources() ([]network.Watcher,...
    method appendResource (line 48) | func (az *NetworkWatcherGenerator) appendResource(resource *network.Wa...
    method appendFlowLogs (line 52) | func (az *NetworkWatcherGenerator) appendFlowLogs(parent *network.Watc...
    method appendPacketCaptures (line 72) | func (az *NetworkWatcherGenerator) appendPacketCaptures(parent *networ...
    method InitResources (line 87) | func (az *NetworkWatcherGenerator) InitResources() error {

FILE: providers/azure/private_dns.go
  type PrivateDNSGenerator (line 28) | type PrivateDNSGenerator struct
    method listRecordSets (line 32) | func (g *PrivateDNSGenerator) listRecordSets(resourceGroupName string,...
    method listVirtualNetworkLinks (line 77) | func (g *PrivateDNSGenerator) listVirtualNetworkLinks(resourceGroupNam...
    method listAndAddForPrivateDNSZone (line 108) | func (g *PrivateDNSGenerator) listAndAddForPrivateDNSZone() ([]terrafo...
    method InitResources (line 165) | func (g *PrivateDNSGenerator) InitResources() error {

FILE: providers/azure/private_endpoint.go
  type PrivateEndpointGenerator (line 24) | type PrivateEndpointGenerator struct
    method listServices (line 28) | func (az *PrivateEndpointGenerator) listServices() ([]network.PrivateL...
    method AppendServices (line 57) | func (az *PrivateEndpointGenerator) AppendServices(link *network.Priva...
    method listEndpoints (line 61) | func (az *PrivateEndpointGenerator) listEndpoints() ([]network.Private...
    method AppendEndpoint (line 90) | func (az *PrivateEndpointGenerator) AppendEndpoint(link *network.Priva...
    method InitResources (line 94) | func (az *PrivateEndpointGenerator) InitResources() error {

FILE: providers/azure/public_ip.go
  type PublicIPGenerator (line 27) | type PublicIPGenerator struct
    method listAndAddForPublicIPAddress (line 31) | func (g *PublicIPGenerator) listAndAddForPublicIPAddress() ([]terrafor...
    method listAndAddForPublicIPPrefix (line 69) | func (g *PublicIPGenerator) listAndAddForPublicIPPrefix() ([]terraform...
    method InitResources (line 108) | func (g *PublicIPGenerator) InitResources() error {

FILE: providers/azure/purview.go
  type PurviewGenerator (line 24) | type PurviewGenerator struct
    method listAccounts (line 28) | func (az *PurviewGenerator) listAccounts() ([]purview.Account, error) {
    method AppendAccount (line 57) | func (az *PurviewGenerator) AppendAccount(account *purview.Account) {
    method InitResources (line 61) | func (az *PurviewGenerator) InitResources() error {

FILE: providers/azure/redis.go
  type RedisGenerator (line 26) | type RedisGenerator struct
    method listRedisServers (line 30) | func (g *RedisGenerator) listRedisServers() ([]terraformutils.Resource...
    method InitResources (line 60) | func (g *RedisGenerator) InitResources() error {

FILE: providers/azure/resource_group.go
  type ResourceGroupGenerator (line 27) | type ResourceGroupGenerator struct
    method createResources (line 31) | func (g ResourceGroupGenerator) createResources(groupListResultIterato...
    method InitResources (line 49) | func (g *ResourceGroupGenerator) InitResources() error {

FILE: providers/azure/route_table.go
  type RouteTableGenerator (line 24) | type RouteTableGenerator struct
    method listResources (line 28) | func (az *RouteTableGenerator) listResources() ([]network.RouteTable, ...
    method appendResource (line 57) | func (az *RouteTableGenerator) appendResource(resource *network.RouteT...
    method appendRoutes (line 61) | func (az *RouteTableGenerator) appendRoutes(parent *network.RouteTable...
    method listRouteFilters (line 81) | func (az *RouteTableGenerator) listRouteFilters() ([]network.RouteFilt...
    method appendRouteFilters (line 110) | func (az *RouteTableGenerator) appendRouteFilters(resource *network.Ro...
    method InitResources (line 114) | func (az *RouteTableGenerator) InitResources() error {

FILE: providers/azure/scaleset.go
  type ScaleSetGenerator (line 27) | type ScaleSetGenerator struct
    method createResourcesByResourceGroup (line 31) | func (g ScaleSetGenerator) createResourcesByResourceGroup(ctx context....
    method createResources (line 54) | func (g ScaleSetGenerator) createResources(ctx context.Context, client...
    method InitResources (line 77) | func (g *ScaleSetGenerator) InitResources() error {

FILE: providers/azure/security_center_contact.go
  type SecurityCenterContactGenerator (line 13) | type SecurityCenterContactGenerator struct
    method listContacts (line 17) | func (g SecurityCenterContactGenerator) listContacts() ([]terraformuti...
    method InitResources (line 51) | func (g *SecurityCenterContactGenerator) InitResources() error {

FILE: providers/azure/security_center_subscription_pricing.go
  type SecurityCenterSubscriptionPricingGenerator (line 13) | type SecurityCenterSubscriptionPricingGenerator struct
    method listSubscriptionPricing (line 17) | func (g SecurityCenterSubscriptionPricingGenerator) listSubscriptionPr...
    method InitResources (line 46) | func (g *SecurityCenterSubscriptionPricingGenerator) InitResources() e...

FILE: providers/azure/ssh_public_key.go
  type SSHPublicKeyGenerator (line 24) | type SSHPublicKeyGenerator struct
    method listResources (line 28) | func (az *SSHPublicKeyGenerator) listResources() ([]compute.SSHPublicK...
    method appendResource (line 57) | func (az *SSHPublicKeyGenerator) appendResource(resource *compute.SSHP...
    method InitResources (line 61) | func (az *SSHPublicKeyGenerator) InitResources() error {

FILE: providers/azure/storage_account.go
  type StorageAccountGenerator (line 27) | type StorageAccountGenerator struct
    method createResourcesByResourceGroup (line 31) | func (g StorageAccountGenerator) createResourcesByResourceGroup(ctx co...
    method createResources (line 49) | func (g StorageAccountGenerator) createResources(ctx context.Context, ...
    method InitResources (line 71) | func (g *StorageAccountGenerator) InitResources() error {

FILE: providers/azure/storage_blob.go
  constant blobFormatString (line 18) | blobFormatString = `https://%s.blob.core.windows.net`
  constant blobIDFormat (line 19) | blobIDFormat     = `https://%s.blob.core.windows.net/%s/%s`
  type StorageBlobGenerator (line 22) | type StorageBlobGenerator struct
    method getAccountPrimaryKey (line 26) | func (g StorageBlobGenerator) getAccountPrimaryKey(ctx context.Context...
    method getContainerURL (line 39) | func (g StorageBlobGenerator) getContainerURL(ctx context.Context, acc...
    method getBlobsFromContainer (line 58) | func (g StorageBlobGenerator) getBlobsFromContainer(ctx context.Contex...
    method listStorageBlobs (line 79) | func (g StorageBlobGenerator) listStorageBlobs() ([]terraformutils.Res...
    method InitResources (line 120) | func (g *StorageBlobGenerator) InitResources() error {

FILE: providers/azure/storage_container.go
  constant containerIDFormat (line 14) | containerIDFormat = "https://%s.blob.core.windows.net/%s"
  type StorageContainerGenerator (line 17) | type StorageContainerGenerator struct
    method ListBlobContainers (line 31) | func (g StorageContainerGenerator) ListBlobContainers() ([]terraformut...
    method getStorageAccounts (line 78) | func (g *StorageContainerGenerator) getStorageAccounts() ([]storage.Ac...
    method InitResources (line 111) | func (g *StorageContainerGenerator) InitResources() error {
  function NewStorageContainerGenerator (line 21) | func NewStorageContainerGenerator(resourceManagerEndpoint string, subscr...

FILE: providers/azure/subnet.go
  type SubnetGenerator (line 24) | type SubnetGenerator struct
    method lisSubnets (line 28) | func (az *SubnetGenerator) lisSubnets() ([]network.Subnet, error) {
    method AppendSubnet (line 75) | func (az *SubnetGenerator) AppendSubnet(subnet *network.Subnet) {
    method appendRouteTable (line 79) | func (az *SubnetGenerator) appendRouteTable(subnet *network.Subnet) {
    method appendNetworkSecurityGroupAssociation (line 93) | func (az *SubnetGenerator) appendNetworkSecurityGroupAssociation(subne...
    method appendNatGateway (line 107) | func (az *SubnetGenerator) appendNatGateway(subnet *network.Subnet) {
    method appendServiceEndpointPolicies (line 121) | func (az *SubnetGenerator) appendServiceEndpointPolicies() error {
    method InitResources (line 150) | func (az *SubnetGenerator) InitResources() error {
    method PostConvertHook (line 168) | func (az *SubnetGenerator) PostConvertHook() error {

FILE: providers/azure/synapse.go
  type SynapseGenerator (line 26) | type SynapseGenerator struct
    method listWorkspaces (line 30) | func (az *SynapseGenerator) listWorkspaces() ([]synapse.Workspace, err...
    method appendWorkspace (line 59) | func (az *SynapseGenerator) appendWorkspace(workspace *synapse.Workspa...
    method appendSQLPools (line 63) | func (az *SynapseGenerator) appendSQLPools(workspace *synapse.Workspac...
    method appendSparkPools (line 83) | func (az *SynapseGenerator) appendSparkPools(workspace *synapse.Worksp...
    method appendFirewallRule (line 103) | func (az *SynapseGenerator) appendFirewallRule(workspace *synapse.Work...
    method appendManagedPrivateEndpoint (line 123) | func (az *SynapseGenerator) appendManagedPrivateEndpoint(workspace *sy...
    method listPrivateLinkHubs (line 152) | func (az *SynapseGenerator) listPrivateLinkHubs() ([]synapse.PrivateLi...
    method appendtPrivateLinkHubs (line 181) | func (az *SynapseGenerator) appendtPrivateLinkHubs(workspace *synapse....
    method InitResources (line 185) | func (az *SynapseGenerator) InitResources() error {

FILE: providers/azure/virtual_machine.go
  type VirtualMachineGenerator (line 27) | type VirtualMachineGenerator struct
    method createResources (line 31) | func (g VirtualMachineGenerator) createResources(virtualMachineListRes...
    method InitResources (line 79) | func (g *VirtualMachineGenerator) InitResources() error {

FILE: providers/azure/virtual_network.go
  type VirtualNetworkGenerator (line 27) | type VirtualNetworkGenerator struct
    method createResources (line 31) | func (g VirtualNetworkGenerator) createResources(ctx context.Context, ...
    method InitResources (line 56) | func (g *VirtualNetworkGenerator) InitResources() error {
    method PostConvertHook (line 85) | func (g *VirtualNetworkGenerator) PostConvertHook() error {

FILE: providers/azuread/app_role_assignment.go
  type AppRoleAssignmentServiceGenerator (line 13) | type AppRoleAssignmentServiceGenerator struct
    method listResources (line 17) | func (az *AppRoleAssignmentServiceGenerator) listResources() ([]msgrap...
    method appendResource (line 58) | func (az *AppRoleAssignmentServiceGenerator) appendResource(resource *...
    method InitResources (line 64) | func (az *AppRoleAssignmentServiceGenerator) InitResources() error {
    method GetResourceConnections (line 77) | func (az *AppRoleAssignmentServiceGenerator) GetResourceConnections() ...

FILE: providers/azuread/application.go
  type ApplicationServiceGenerator (line 12) | type ApplicationServiceGenerator struct
    method listResources (line 16) | func (az *ApplicationServiceGenerator) listResources() ([]msgraph.Appl...
    method appendResource (line 39) | func (az *ApplicationServiceGenerator) appendResource(resource *msgrap...
    method InitResources (line 44) | func (az *ApplicationServiceGenerator) InitResources() error {
    method GetResourceConnections (line 57) | func (az *ApplicationServiceGenerator) GetResourceConnections() map[st...

FILE: providers/azuread/azuread_provider.go
  type AzureADProvider (line 25) | type AzureADProvider struct
    method setEnvConfig (line 32) | func (p *AzureADProvider) setEnvConfig() error {
    method Init (line 52) | func (p *AzureADProvider) Init(args []string) error {
    method GetName (line 62) | func (p *AzureADProvider) GetName() string {
    method GetProviderData (line 66) | func (p *AzureADProvider) GetProviderData(arg ...string) map[string]in...
    method GetResourceConnections (line 70) | func (AzureADProvider) GetResourceConnections() map[string]map[string]...
    method GetSupportedService (line 74) | func (p *AzureADProvider) GetSupportedService() map[string]terraformut...
    method InitService (line 84) | func (p *AzureADProvider) InitService(serviceName string, verbose bool...

FILE: providers/azuread/azuread_service.go
  type AzureADService (line 28) | type AzureADService struct
    method getAuthorizer (line 37) | func (az *AzureADService) getAuthorizer() (auth.Authorizer, error) {
    method getUserClient (line 60) | func (az *AzureADService) getUserClient() (*msgraph.UsersClient, error) {
    method getApplicationsClient (line 75) | func (az *AzureADService) getApplicationsClient() (*msgraph.Applicatio...
    method getGroupsClient (line 90) | func (az *AzureADService) getGroupsClient() (*msgraph.GroupsClient, er...
    method getServicePrincipalsClient (line 105) | func (az *AzureADService) getServicePrincipalsClient() (*msgraph.Servi...
    method getAppRoleAssignmentsClient (line 120) | func (az *AzureADService) getAppRoleAssignmentsClient() (*msgraph.AppR...
    method GetResourceConnections (line 135) | func (az *AzureADService) GetResourceConnections() map[string][]string {
    method appendSimpleResource (line 139) | func (az *AzureADService) appendSimpleResource(id string, resourceName...
  type ServiceGenerator (line 32) | type ServiceGenerator interface

FILE: providers/azuread/group.go
  type GroupServiceGenerator (line 12) | type GroupServiceGenerator struct
    method listResources (line 16) | func (az *GroupServiceGenerator) listResources() ([]msgraph.Group, err...
    method appendResource (line 39) | func (az *GroupServiceGenerator) appendResource(resource *msgraph.Grou...
    method InitResources (line 44) | func (az *GroupServiceGenerator) InitResources() error {
    method GetResourceConnections (line 57) | func (az *GroupServiceGenerator) GetResourceConnections() map[string][...

FILE: providers/azuread/service_principal.go
  type ServicePrincipalServiceGenerator (line 12) | type ServicePrincipalServiceGenerator struct
    method listResources (line 16) | func (az *ServicePrincipalServiceGenerator) listResources() ([]msgraph...
    method appendResource (line 39) | func (az *ServicePrincipalServiceGenerator) appendResource(resource *m...
    method InitResources (line 44) | func (az *ServicePrincipalServiceGenerator) InitResources() error {
    method GetResourceConnections (line 57) | func (az *ServicePrincipalServiceGenerator) GetResourceConnections() m...

FILE: providers/azuread/user.go
  type UserServiceGenerator (line 12) | type UserServiceGenerator struct
    method listResources (line 16) | func (az *UserServiceGenerator) listResources() ([]msgraph.User, error) {
    method appendResource (line 39) | func (az *UserServiceGenerator) appendResource(resource *msgraph.User) {
    method InitResources (line 44) | func (az *UserServiceGenerator) InitResources() error {
    method GetResourceConnections (line 57) | func (az *UserServiceGenerator) GetResourceConnections() map[string][]...

FILE: providers/azuredevops/azuredevops_provider.go
  type AzureDevOpsProvider (line 24) | type AzureDevOpsProvider struct
    method setEnvConfig (line 30) | func (p *AzureDevOpsProvider) setEnvConfig() error {
    method Init (line 45) | func (p *AzureDevOpsProvider) Init(args []string) error {
    method GetName (line 53) | func (p *AzureDevOpsProvider) GetName() string {
    method GetProviderData (line 57) | func (p *AzureDevOpsProvider) GetProviderData(arg ...string) map[strin...
    method GetResourceConnections (line 61) | func (p AzureDevOpsProvider) GetResourceConnections() map[string]map[s...
    method GetSupportedService (line 74) | func (p *AzureDevOpsProvider) GetSupportedService() map[string]terrafo...
    method InitService (line 82) | func (p *AzureDevOpsProvider) InitService(serviceName string, verbose ...

FILE: providers/azuredevops/azuredevops_service.go
  type AzureDevOpsServiceGenerator (line 29) | type AzureDevOpsServiceGenerator interface
  type AzureDevOpsService (line 34) | type AzureDevOpsService struct
    method GetResourceConnections (line 38) | func (az *AzureDevOpsService) GetResourceConnections() map[string][]st...
    method getConnection (line 42) | func (az *AzureDevOpsService) getConnection() *azuredevops.Connection {
    method getCoreClient (line 49) | func (az *AzureDevOpsService) getCoreClient() (core.Client, error) {
    method getGraphClient (line 59) | func (az *AzureDevOpsService) getGraphClient() (graph.Client, error) {
    method getGitClient (line 69) | func (az *AzureDevOpsService) getGitClient() (git.Client, error) {
    method appendSimpleResource (line 79) | func (az *AzureDevOpsService) appendSimpleResource(id string, resource...

FILE: providers/azuredevops/git_repository.go
  type GitRepositoryGenerator (line 9) | type GitRepositoryGenerator struct
    method listResources (line 13) | func (az *GitRepositoryGenerator) listResources() ([]git.GitRepository...
    method appendResource (line 27) | func (az *GitRepositoryGenerator) appendResource(resource *git.GitRepo...
    method InitResources (line 33) | func (az *GitRepositoryGenerator) InitResources() error {
    method GetResourceConnections (line 45) | func (az *GitRepositoryGenerator) GetResourceConnections() map[string]...

FILE: providers/azuredevops/group.go
  type GroupGenerator (line 9) | type GroupGenerator struct
    method listResources (line 13) | func (az *GroupGenerator) listResources() ([]graph.GraphGroup, error) {
    method appendResource (line 35) | func (az *GroupGenerator) appendResource(resource *graph.GraphGroup) {
    method InitResources (line 41) | func (az *GroupGenerator) InitResources() error {
    method GetResourceConnections (line 53) | func (az *GroupGenerator) GetResourceConnections() map[string][]string {

FILE: providers/azuredevops/helpers.go
  function firstNonEmpty (line 3) | func firstNonEmpty(values ...*string) *string {

FILE: providers/azuredevops/project.go
  type ProjectGenerator (line 9) | type ProjectGenerator struct
    method listResources (line 13) | func (az *ProjectGenerator) listResources() ([]core.TeamProjectReferen...
    method appendResource (line 36) | func (az *ProjectGenerator) appendResource(resource *core.TeamProjectR...
    method InitResources (line 41) | func (az *ProjectGenerator) InitResources() error {

FILE: providers/cloudflare/access.go
  type AccessGenerator (line 24) | type AccessGenerator struct
    method createAccessApplications (line 28) | func (g *AccessGenerator) createAccessApplications(api *cf.API, zoneID...
    method InitResources (line 53) | func (g *AccessGenerator) InitResources() error {

FILE: providers/cloudflare/account_member.go
  type AccountMemberGenerator (line 22) | type AccountMemberGenerator struct
    method createAccountMemberResources (line 26) | func (g *AccountMemberGenerator) createAccountMemberResources(api *cf....
    method InitResources (line 69) | func (g *AccountMemberGenerator) InitResources() error {

FILE: providers/cloudflare/cloudflare_provider.go
  type CloudflareProvider (line 23) | type CloudflareProvider struct
    method Init (line 27) | func (p *CloudflareProvider) Init(args []string) error {
    method GetName (line 31) | func (p *CloudflareProvider) GetName() string {
    method GetProviderData (line 35) | func (p *CloudflareProvider) GetProviderData(arg ...string) map[string...
    method GetResourceConnections (line 39) | func (CloudflareProvider) GetResourceConnections() map[string]map[stri...
    method GetSupportedService (line 43) | func (p *CloudflareProvider) GetSupportedService() map[string]terrafor...
    method InitService (line 53) | func (p *CloudflareProvider) InitService(serviceName string, verbose b...

FILE: providers/cloudflare/cloudflare_service.go
  type CloudflareService (line 26) | type CloudflareService struct
    method initializeAPI (line 30) | func (s *CloudflareService) initializeAPI() (*cf.API, error) {

FILE: providers/cloudflare/dns.go
  type DNSGenerator (line 25) | type DNSGenerator struct
    method createZonesResource (line 29) | func (*DNSGenerator) createZonesResource(api *cf.API, zoneID string) (...
    method createRecordsResources (line 52) | func (*DNSGenerator) createRecordsResources(api *cf.API, zoneID string...
    method InitResources (line 82) | func (g *DNSGenerator) InitResources() error {
    method PostConvertHook (line 113) | func (g *DNSGenerator) PostConvertHook() error {

FILE: providers/cloudflare/firewall.go
  type FirewallGenerator (line 25) | type FirewallGenerator struct
    method createZoneLockdownsResources (line 29) | func (*FirewallGenerator) createZoneLockdownsResources(api *cf.API, zo...
    method createAccountAccessRuleResources (line 63) | func (g *FirewallGenerator) createAccountAccessRuleResources(api *cf.A...
    method createZoneAccessRuleResources (line 100) | func (*FirewallGenerator) createZoneAccessRuleResources(api *cf.API, z...
    method createFilterResources (line 149) | func (*FirewallGenerator) createFilterResources(api *cf.API, zoneID, z...
    method createFirewallRuleResources (line 173) | func (*FirewallGenerator) createFirewallRuleResources(api *cf.API, zon...
    method createRateLimitResources (line 197) | func (g *FirewallGenerator) createRateLimitResources(api *cf.API, zone...
    method InitResources (line 216) | func (g *FirewallGenerator) InitResources() error {
    method PostConvertHook (line 258) | func (g *FirewallGenerator) PostConvertHook() error {

FILE: providers/cloudflare/page_rule.go
  type PageRulesGenerator (line 22) | type PageRulesGenerator struct
    method createPageRules (line 26) | func (g *PageRulesGenerator) createPageRules(api *cf.API, zoneID strin...
    method InitResources (line 50) | func (g *PageRulesGenerator) InitResources() error {

FILE: providers/commercetools/api_extension.go
  type APIExtensionGenerator (line 25) | type APIExtensionGenerator struct
    method InitResources (line 30) | func (g *APIExtensionGenerator) InitResources() error {

FILE: providers/commercetools/channel.go
  type ChannelGenerator (line 25) | type ChannelGenerator struct
    method InitResources (line 30) | func (g *ChannelGenerator) InitResources() error {

FILE: providers/commercetools/commercetools_provider.go
  type CommercetoolsProvider (line 22) | type CommercetoolsProvider struct
    method GetResourceConnections (line 32) | func (p CommercetoolsProvider) GetResourceConnections() map[string]map...
    method GetProviderData (line 36) | func (p CommercetoolsProvider) GetProviderData(arg ...string) map[stri...
    method Init (line 41) | func (p *CommercetoolsProvider) Init(args []string) error {
    method GetName (line 51) | func (p *CommercetoolsProvider) GetName() string {
    method InitService (line 55) | func (p *CommercetoolsProvider) InitService(serviceName string, verbos...
    method GetSupportedService (line 76) | func (p *CommercetoolsProvider) GetSupportedService() map[string]terra...

FILE: providers/commercetools/commercetools_service.go
  type CommercetoolsService (line 19) | type CommercetoolsService struct

FILE: providers/commercetools/connectivity/client.go
  method NewClient (line 11) | func (c *Config) NewClient() *commercetools.Client {

FILE: providers/commercetools/connectivity/config.go
  type Config (line 3) | type Config struct

FILE: providers/commercetools/custom_object.go
  type CustomObjectGenerator (line 25) | type CustomObjectGenerator struct
    method InitResources (line 30) | func (g *CustomObjectGenerator) InitResources() error {

FILE: providers/commercetools/helpers.go
  function normalizeResourceName (line 23) | func normalizeResourceName(s string) string {

FILE: providers/commercetools/product_type.go
  type ProductTypeGenerator (line 25) | type ProductTypeGenerator struct
    method InitResources (line 30) | func (g *ProductTypeGenerator) InitResources() error {

FILE: providers/commercetools/shipping_method.go
  type ShippingMethodGenerator (line 25) | type ShippingMethodGenerator struct
    method InitResources (line 30) | func (g *ShippingMethodGenerator) InitResources() error {

FILE: providers/commercetools/shipping_zone.go
  type ShippingZoneGenerator (line 25) | type ShippingZoneGenerator struct
    method InitResources (line 30) | func (g *ShippingZoneGenerator) InitResources() error {

FILE: providers/commercetools/state.go
  type StateGenerator (line 25) | type StateGenerator struct
    method InitResources (line 30) | func (g *StateGenerator) InitResources() error {

FILE: providers/commercetools/store.go
  type StoreGenerator (line 25) | type StoreGenerator struct
    method InitResources (line 30) | func (g *StoreGenerator) InitResources() error {

FILE: providers/commercetools/subscription.go
  type SubscriptionGenerator (line 25) | type SubscriptionGenerator struct
    method InitResources (line 30) | func (g *SubscriptionGenerator) InitResources() error {

FILE: providers/commercetools/tax_category.go
  type TaxCategoryGenerator (line 25) | type TaxCategoryGenerator struct
    method InitResources (line 30) | func (g *TaxCategoryGenerator) InitResources() error {

FILE: providers/commercetools/types.go
  type TypesGenerator (line 25) | type TypesGenerator struct
    method InitResources (line 30) | func (g *TypesGenerator) InitResources() error {

FILE: providers/datadog/dashboard.go
  type DashboardGenerator (line 33) | type DashboardGenerator struct
    method createResources (line 37) | func (g *DashboardGenerator) createResources(dashboards []datadogV1.Da...
    method createResource (line 47) | func (g *DashboardGenerator) createResource(dashboardID string) terraf...
    method InitResources (line 60) | func (g *DashboardGenerator) InitResources() error {

FILE: providers/datadog/dashboard_json.go
  type DashboardJSONGenerator (line 33) | type DashboardJSONGenerator struct
    method createResources (line 37) | func (g *DashboardJSONGenerator) createResources(dashboards []datadogV...
    method createResource (line 47) | func (g *DashboardJSONGenerator) createResource(dashboardID string) te...
    method InitResources (line 60) | func (g *DashboardJSONGenerator) InitResources() error {

FILE: providers/datadog/dashboard_list.go
  type DashboardListGenerator (line 34) | type DashboardListGenerator struct
    method createResources (line 38) | func (g *DashboardListGenerator) createResources(dashboardLists []data...
    method createResource (line 48) | func (g *DashboardListGenerator) createResource(dashboardListID string...
    method InitResources (line 61) | func (g *DashboardListGenerator) InitResources() error {

FILE: providers/datadog/datadog_provider.go
  type DatadogProvider (line 31) | type DatadogProvider struct
    method Init (line 42) | func (p *DatadogProvider) Init(args []string) error {
    method GetName (line 124) | func (p *DatadogProvider) GetName() string {
    method GetConfig (line 129) | func (p *DatadogProvider) GetConfig() cty.Value {
    method InitService (line 139) | func (p *DatadogProvider) InitService(serviceName string, verbose bool...
    method GetSupportedService (line 160) | func (p *DatadogProvider) GetSupportedService() map[string]terraformut...
    method GetResourceConnections (line 196) | func (p DatadogProvider) GetResourceConnections() map[string]map[strin...
    method GetProviderData (line 297) | func (p DatadogProvider) GetProviderData(arg ...string) map[string]int...

FILE: providers/datadog/datadog_service.go
  type DatadogService (line 19) | type DatadogService struct

FILE: providers/datadog/downtime.go
  type DowntimeGenerator (line 34) | type DowntimeGenerator struct
    method createResources (line 38) | func (g *DowntimeGenerator) createResources(downtimes []datadogV1.Down...
    method createResource (line 48) | func (g *DowntimeGenerator) createResource(downtimeID string) terrafor...
    method InitResources (line 61) | func (g *DowntimeGenerator) InitResources() error {

FILE: providers/datadog/integration_aws.go
  type IntegrationAWSGenerator (line 33) | type IntegrationAWSGenerator struct
    method createResources (line 37) | func (g *IntegrationAWSGenerator) createResources(awsAccounts []datado...
    method createResource (line 47) | func (g *IntegrationAWSGenerator) createResource(resourceID string) te...
    method InitResources (line 60) | func (g *IntegrationAWSGenerator) InitResources() error {

FILE: providers/datadog/integration_aws_lambda_arn.go
  type IntegrationAWSLambdaARNGenerator (line 33) | type IntegrationAWSLambdaARNGenerator struct
    method createResources (line 37) | func (g *IntegrationAWSLambdaARNGenerator) createResources(logCollecti...
    method createResource (line 51) | func (g *IntegrationAWSLambdaARNGenerator) createResource(resourceID s...
    method InitResources (line 64) | func (g *IntegrationAWSLambdaARNGenerator) InitResources() error {

FILE: providers/datadog/integration_aws_log_collection.go
  type IntegrationAWSLogCollectionGenerator (line 33) | type IntegrationAWSLogCollectionGenerator struct
    method createResources (line 37) | func (g *IntegrationAWSLogCollectionGenerator) createResources(logColl...
    method createResource (line 46) | func (g *IntegrationAWSLogCollectionGenerator) createResource(resource...
    method InitResources (line 59) | func (g *IntegrationAWSLogCollectionGenerator) InitResources() error {
    method PostConvertHook (line 72) | func (g *IntegrationAWSLogCollectionGenerator) PostConvertHook() error {

FILE: providers/datadog/integration_azure.go
  type IntegrationAzureGenerator (line 33) | type IntegrationAzureGenerator struct
    method createResources (line 37) | func (g *IntegrationAzureGenerator) createResources(azureAccounts []da...
    method createResource (line 47) | func (g *IntegrationAzureGenerator) createResource(resourceID string) ...
    method InitResources (line 60) | func (g *IntegrationAzureGenerator) InitResources() error {

FILE: providers/datadog/integration_gcp.go
  type IntegrationGCPGenerator (line 33) | type IntegrationGCPGenerator struct
    method createResources (line 37) | func (g *IntegrationGCPGenerator) createResources(gcpAccounts []datado...
    method createResource (line 47) | func (g *IntegrationGCPGenerator) createResource(resourceID string) te...
    method InitResources (line 60) | func (g *IntegrationGCPGenerator) InitResources() error {

FILE: providers/datadog/integration_pagerduty.go
  type IntegrationPagerdutyGenerator (line 31) | type IntegrationPagerdutyGenerator struct
    method createResources (line 35) | func (g *IntegrationPagerdutyGenerator) createResources(pdSubdomain st...
    method createResource (line 42) | func (g *IntegrationPagerdutyGenerator) createResource(serviceName str...
    method InitResources (line 63) | func (g *IntegrationPagerdutyGenerator) InitResources() error {

FILE: providers/datadog/integration_pagerduty_service_object.go
  type IntegrationPagerdutyServiceObjectGenerator (line 31) | type IntegrationPagerdutyServiceObjectGenerator struct
    method createResources (line 35) | func (g *IntegrationPagerdutyServiceObjectGenerator) createResources(s...
    method createResource (line 45) | func (g *IntegrationPagerdutyServiceObjectGenerator) createResource(se...
    method InitResources (line 58) | func (g *IntegrationPagerdutyServiceObjectGenerator) InitResources() e...

FILE: providers/datadog/integration_slack_channel.go
  type IntegrationSlackChannelGenerator (line 34) | type IntegrationSlackChannelGenerator struct
    method createResources (line 38) | func (g *IntegrationSlackChannelGenerator) createResources(accountID s...
    method createResource (line 48) | func (g *IntegrationSlackChannelGenerator) createResource(id string) t...
    method InitResources (line 60) | func (g *IntegrationSlackChannelGenerator) InitResources() error {

FILE: providers/datadog/logs_archive.go
  type LogsArchiveGenerator (line 33) | type LogsArchiveGenerator struct
    method createResources (line 37) | func (g *LogsArchiveGenerator) createResources(logsArchives []datadogV...
    method createResource (line 47) | func (g *LogsArchiveGenerator) createResource(logsArchiveID string) te...
    method InitResources (line 60) | func (g *LogsArchiveGenerator) InitResources() error {

FILE: providers/datadog/logs_archive_order.go
  type LogsArchiveOrderGenerator (line 27) | type LogsArchiveOrderGenerator struct
    method InitResources (line 32) | func (g *LogsArchiveOrderGenerator) InitResources() error {

FILE: providers/datadog/logs_custom_pipeline.go
  type LogsCustomPipelineGenerator (line 35) | type LogsCustomPipelineGenerator struct
    method createResources (line 39) | func (g *LogsCustomPipelineGenerator) createResources(logsCustomPipeli...
    method createResource (line 52) | func (g *LogsCustomPipelineGenerator) createResource(logsCustomPipelin...
    method InitResources (line 65) | func (g *LogsCustomPipelineGenerator) InitResources() error {
    method PostConvertHook (line 97) | func (g *LogsCustomPipelineGenerator) PostConvertHook() error {

FILE: providers/datadog/logs_index.go
  type LogsIndexGenerator (line 33) | type LogsIndexGenerator struct
    method createResources (line 37) | func (g *LogsIndexGenerator) createResources(logsIndexes []datadogV1.L...
    method createResource (line 47) | func (g *LogsIndexGenerator) createResource(logsIndexName string) terr...
    method InitResources (line 60) | func (g *LogsIndexGenerator) InitResources() error {

FILE: providers/datadog/logs_index_order.go
  type LogsIndexOrderGenerator (line 30) | type LogsIndexOrderGenerator struct
    method InitResources (line 35) | func (g *LogsIndexOrderGenerator) InitResources() error {

FILE: providers/datadog/logs_integration_pipeline.go
  type LogsIntegrationPipelineGenerator (line 32) | type LogsIntegrationPipelineGenerator struct
    method createResources (line 36) | func (g *LogsIntegrationPipelineGenerator) createResources(logsIntegra...
    method createResource (line 50) | func (g *LogsIntegrationPipelineGenerator) createResource(logsIntegrat...
    method InitResources (line 63) | func (g *LogsIntegrationPipelineGenerator) InitResources() error {

FILE: providers/datadog/logs_metric.go
  type LogsMetricGenerator (line 33) | type LogsMetricGenerator struct
    method createResources (line 37) | func (g *LogsMetricGenerator) createResources(logsMetrics []datadogV2....
    method createResource (line 47) | func (g *LogsMetricGenerator) createResource(logsMetricName string) te...
    method InitResources (line 60) | func (g *LogsMetricGenerator) InitResources() error {

FILE: providers/datadog/logs_pipeline_order.go
  type LogsPipelineOrderGenerator (line 30) | type LogsPipelineOrderGenerator struct
    method InitResources (line 35) | func (g *LogsPipelineOrderGenerator) InitResources() error {

FILE: providers/datadog/metric_metadata.go
  type MetricMetadataGenerator (line 30) | type MetricMetadataGenerator struct
    method createResource (line 34) | func (g *MetricMetadataGenerator) createResource(metricName string) te...
    method InitResources (line 51) | func (g *MetricMetadataGenerator) InitResources() error {

FILE: providers/datadog/monitor.go
  type MonitorGenerator (line 35) | type MonitorGenerator struct
    method createResources (line 39) | func (g *MonitorGenerator) createResources(monitors []datadogV1.Monito...
    method createResource (line 52) | func (g *MonitorGenerator) createResource(monitorID string) terraformu...
    method InitResources (line 65) | func (g *MonitorGenerator) InitResources() error {

FILE: providers/datadog/role.go
  type RoleGenerator (line 33) | type RoleGenerator struct
    method createResources (line 37) | func (g *RoleGenerator) createResources(roles []datadogV2.Role) []terr...
    method createResource (line 49) | func (g *RoleGenerator) createResource(roleID string) terraformutils.R...
    method InitResources (line 62) | func (g *RoleGenerator) InitResources() error {

FILE: providers/datadog/security_monitoring_default_rule.go
  type SecurityMonitoringDefaultRuleGenerator (line 33) | type SecurityMonitoringDefaultRuleGenerator struct
    method createResources (line 37) | func (g *SecurityMonitoringDefaultRuleGenerator) createResources(rules...
    method createResource (line 58) | func (g *SecurityMonitoringDefaultRuleGenerator) createResource(ruleID...
    method InitResources (line 71) | func (g *SecurityMonitoringDefaultRuleGenerator) InitResources() error {

FILE: providers/datadog/security_monitoring_rule.go
  type SecurityMonitoringRuleGenerator (line 34) | type SecurityMonitoringRuleGenerator struct
    method createResources (line 38) | func (g *SecurityMonitoringRuleGenerator) createResources(rulesRespons...
    method createResource (line 58) | func (g *SecurityMonitoringRuleGenerator) createResource(ruleID string...
    method InitResources (line 75) | func (g *SecurityMonitoringRuleGenerator) InitResources() error {

FILE: providers/datadog/service_level_objective.go
  type ServiceLevelObjectiveGenerator (line 33) | type ServiceLevelObjectiveGenerator struct
    method createResources (line 37) | func (g *ServiceLevelObjectiveGenerator) createResources(sloList []dat...
    method createResource (line 47) | func (g *ServiceLevelObjectiveGenerator) createResource(sloID string) ...
    method InitResources (line 60) | func (g *ServiceLevelObjectiveGenerator) InitResources() error {

FILE: providers/datadog/synthetics_global_variable.go
  type SyntheticsGlobalVariableGenerator (line 34) | type SyntheticsGlobalVariableGenerator struct
    method createResources (line 38) | func (g *SyntheticsGlobalVariableGenerator) createResources(globalVari...
    method createResource (line 48) | func (g *SyntheticsGlobalVariableGenerator) createResource(globalVaria...
    method InitResources (line 61) | func (g *SyntheticsGlobalVariableGenerator) InitResources() error {

FILE: providers/datadog/synthetics_private_location.go
  type SyntheticsPrivateLocationGenerator (line 35) | type SyntheticsPrivateLocationGenerator struct
    method createResources (line 39) | func (g *SyntheticsPrivateLocationGenerator) createResources(locations...
    method createResource (line 50) | func (g *SyntheticsPrivateLocationGenerator) createResource(plID strin...
    method InitResources (line 63) | func (g *SyntheticsPrivateLocationGenerator) InitResources() error {

FILE: providers/datadog/synthetics_test_.go
  type SyntheticsTestGenerator (line 33) | type SyntheticsTestGenerator struct
    method createResources (line 37) | func (g *SyntheticsTestGenerator) createResources(syntheticsList []dat...
    method createResource (line 47) | func (g *SyntheticsTestGenerator) createResource(syntheticsID string) ...
    method InitResources (line 60) | func (g *SyntheticsTestGenerator) InitResources() error {

FILE: providers/datadog/user.go
  type UserGenerator (line 34) | type UserGenerator struct
    method createResources (line 38) | func (g *UserGenerator) createResources(users []datadogV2.User) []terr...
    method createResource (line 56) | func (g *UserGenerator) createResource(userID string) terraformutils.R...
    method InitResources (line 69) | func (g *UserGenerator) InitResources() error {

FILE: providers/digitalocean/cdn.go
  type CDNGenerator (line 24) | type CDNGenerator struct
    method listCDNs (line 28) | func (g CDNGenerator) listCDNs(ctx context.Context, client *godo.Clien...
    method createResources (line 58) | func (g CDNGenerator) createResources(cdnList []godo.CDN) []terraformu...
    method InitResources (line 71) | func (g *CDNGenerator) InitResources() error {

FILE: providers/digitalocean/certificate.go
  type CertificateGenerator (line 24) | type CertificateGenerator struct
    method listCertificates (line 28) | func (g CertificateGenerator) listCertificates(ctx context.Context, cl...
    method createResources (line 58) | func (g CertificateGenerator) createResources(certificateList []godo.C...
    method InitResources (line 71) | func (g *CertificateGenerator) InitResources() error {

FILE: providers/digitalocean/database_cluster.go
  type DatabaseClusterGenerator (line 25) | type DatabaseClusterGenerator struct
    method loadDatabaseClusters (line 29) | func (g *DatabaseClusterGenerator) loadDatabaseClusters(ctx context.Co...
    method loadDatabaseConnectionPools (line 67) | func (g *DatabaseClusterGenerator) loadDatabaseConnectionPools(ctx con...
    method loadDatabaseDBs (line 102) | func (g *DatabaseClusterGenerator) loadDatabaseDBs(ctx context.Context...
    method loadDatabaseReplicas (line 145) | func (g *DatabaseClusterGenerator) loadDatabaseReplicas(ctx context.Co...
    method loadDatabaseUsers (line 185) | func (g *DatabaseClusterGenerator) loadDatabaseUsers(ctx context.Conte...
    method InitResources (line 228) | func (g *DatabaseClusterGenerator) InitResources() error {

FILE: providers/digitalocean/digitalocean_provider.go
  type DigitalOceanProvider (line 24) | type DigitalOceanProvider struct
    method Init (line 29) | func (p *DigitalOceanProvider) Init(args []string) error {
    method GetName (line 38) | func (p *DigitalOceanProvider) GetName() string {
    method GetProviderData (line 42) | func (p *DigitalOceanProvider) GetProviderData(arg ...string) map[stri...
    method GetResourceConnections (line 46) | func (DigitalOceanProvider) GetResourceConnections() map[string]map[st...
    method GetSupportedService (line 50) | func (p *DigitalOceanProvider) GetSupportedService() map[string]terraf...
    method InitService (line 71) | func (p *DigitalOceanProvider) InitService(serviceName string, verbose...

FILE: providers/digitalocean/digitalocean_service.go
  type DigitalOceanService (line 25) | type DigitalOceanService struct
    method generateClient (line 29) | func (s *DigitalOceanService) generateClient() *godo.Client {

FILE: providers/digitalocean/domain.go
  type DomainGenerator (line 25) | type DomainGenerator struct
    method loadDomains (line 29) | func (g *DomainGenerator) loadDomains(ctx context.Context, client *god...
    method loadRecords (line 67) | func (g *DomainGenerator) loadRecords(ctx context.Context, client *god...
    method InitResources (line 104) | func (g *DomainGenerator) InitResources() error {

FILE: providers/digitalocean/droplet.go
  type DropletGenerator (line 25) | type DropletGenerator struct
    method listDroplets (line 29) | func (g DropletGenerator) listDroplets(ctx context.Context, client *go...
    method createResources (line 59) | func (g DropletGenerator) createResources(dropletList []godo.Droplet) ...
    method InitResources (line 72) | func (g *DropletGenerator) InitResources() error {

FILE: providers/digitalocean/droplet_snapshot.go
  type DropletSnapshotGenerator (line 24) | type DropletSnapshotGenerator struct
    method listDropletSnapshots (line 28) | func (g DropletSnapshotGenerator) listDropletSnapshots(ctx context.Con...
    method createResources (line 58) | func (g DropletSnapshotGenerator) createResources(snapshotList []godo....
    method InitResources (line 71) | func (g *DropletSnapshotGenerator) InitResources() error {

FILE: providers/digitalocean/firewall.go
  type FirewallGenerator (line 24) | type FirewallGenerator struct
    method listFirewalls (line 28) | func (g FirewallGenerator) listFirewalls(ctx context.Context, client *...
    method createResources (line 58) | func (g FirewallGenerator) createResources(firewallList []godo.Firewal...
    method InitResources (line 71) | func (g *FirewallGenerator) InitResources() error {

FILE: providers/digitalocean/floating_ip.go
  type FloatingIPGenerator (line 24) | type FloatingIPGenerator struct
    method listFloatingIPs (line 28) | func (g FloatingIPGenerator) listFloatingIPs(ctx context.Context, clie...
    method createResources (line 58) | func (g FloatingIPGenerator) createResources(floatingIPList []godo.Flo...
    method InitResources (line 71) | func (g *FloatingIPGenerator) InitResources() error {

FILE: providers/digitalocean/kubernetes_cluster.go
  constant digitaloceanKubernetesDefaultNodePoolTag (line 25) | digitaloceanKubernetesDefaultNodePoolTag = "terraform:default-node-pool"
  type KubernetesClusterGenerator (line 27) | type KubernetesClusterGenerator struct
    method loadKubernetesClusters (line 31) | func (g *KubernetesClusterGenerator) loadKubernetesClusters(ctx contex...
    method loadKubernetesNodePools (line 69) | func (g *KubernetesClusterGenerator) loadKubernetesNodePools(cluster *...
    method InitResources (line 93) | func (g *KubernetesClusterGenerator) InitResources() error {

FILE: providers/digitalocean/loadbalancer.go
  type LoadBalancerGenerator (line 24) | type LoadBalancerGenerator struct
    method listLoadBalancers (line 28) | func (g LoadBalancerGenerator) listLoadBalancers(ctx context.Context, ...
    method createResources (line 58) | func (g LoadBalancerGenerator) createResources(loadBalancerList []godo...
    method InitResources (line 71) | func (g *LoadBalancerGenerator) InitResources() error {

FILE: providers/digitalocean/project.go
  type ProjectGenerator (line 24) | type ProjectGenerator struct
    method listProjects (line 28) | func (g ProjectGenerator) listProjects(ctx context.Context, client *go...
    method createResources (line 58) | func (g ProjectGenerator) createResources(projectList []godo.Project) ...
    method InitResources (line 71) | func (g *ProjectGenerator) InitResources() error {

FILE: providers/digitalocean/ssh_key.go
  type SSHKeyGenerator (line 25) | type SSHKeyGenerator struct
    method listKeys (line 29) | func (g SSHKeyGenerator) listKeys(ctx context.Context, client *godo.Cl...
    method createResources (line 59) | func (g SSHKeyGenerator) createResources(keyList []godo.Key) []terrafo...
    method InitResources (line 72) | func (g *SSHKeyGenerator) InitResources() error {

FILE: providers/digitalocean/tag.go
  type TagGenerator (line 24) | type TagGenerator struct
    method listTags (line 28) | func (g TagGenerator) listTags(ctx context.Context, client *godo.Clien...
    method createResources (line 58) | func (g TagGenerator) createResources(tagList []godo.Tag) []terraformu...
    method InitResources (line 71) | func (g *TagGenerator) InitResources() error {

FILE: providers/digitalocean/token_source.go
  type TokenSource (line 19) | type TokenSource struct
    method Token (line 23) | func (t *TokenSource) Token() (*oauth2.Token, error) {

FILE: providers/digitalocean/volume.go
  type VolumeGenerator (line 24) | type VolumeGenerator struct
    method listVolumes (line 28) | func (g VolumeGenerator) listVolumes(ctx context.Context, client *godo...
    method createResources (line 58) | func (g VolumeGenerator) createResources(volumeList []godo.Volume) []t...
    method InitResources (line 71) | func (g *VolumeGenerator) InitResources() error {

FILE: providers/digitalocean/volume_snapshot.go
  type VolumeSnapshotGenerator (line 24) | type VolumeSnapshotGenerator struct
    method listVolumeSnapshots (line 28) | func (g VolumeSnapshotGenerator) listVolumeSnapshots(ctx context.Conte...
    method createResources (line 58) | func (g VolumeSnapshotGenerator) createResources(snapshotList []godo.S...
    method InitResources (line 71) | func (g *VolumeSnapshotGenerator) InitResources() error {

FILE: providers/digitalocean/vpc.go
  type VPCGenerator (line 24) | type VPCGenerator struct
    method listVPCs (line 28) | func (g VPCGenerator) listVPCs(ctx context.Context, client *godo.Clien...
    method createResources (line 58) | func (g VPCGenerator) createResources(vpcList []*godo.VPC) []terraform...
    method InitResources (line 71) | func (g *VPCGenerator) InitResources() error {

FILE: providers/equinixmetal/device.go
  type DeviceGenerator (line 22) | type DeviceGenerator struct
    method listDevices (line 26) | func (g DeviceGenerator) listDevices(client *packngo.Client) ([]packng...
    method createResources (line 35) | func (g DeviceGenerator) createResources(deviceList []packngo.Device) ...
    method InitResources (line 48) | func (g *DeviceGenerator) InitResources() error {

FILE: providers/equinixmetal/equinixmetal_provider.go
  type EquinixMetalProvider (line 24) | type EquinixMetalProvider struct
    method Init (line 30) | func (p *EquinixMetalProvider) Init(args []string) error {
    method GetName (line 44) | func (p *EquinixMetalProvider) GetName() string {
    method GetProviderData (line 48) | func (p *EquinixMetalProvider) GetProviderData(arg ...string) map[stri...
    method GetResourceConnections (line 52) | func (EquinixMetalProvider) GetResourceConnections() map[string]map[st...
    method GetSupportedService (line 56) | func (p *EquinixMetalProvider) GetSupportedService() map[string]terraf...
    method InitService (line 65) | func (p *EquinixMetalProvider) InitService(serviceName string, verbose...

FILE: providers/equinixmetal/equinixmetal_service.go
  type EquinixMetalService (line 22) | type EquinixMetalService struct
    method generateClient (line 26) | func (s *EquinixMetalService) generateClient() *packngo.Client {

FILE: providers/equinixmetal/spot_market_request.go
  type SpotMarketRequestGenerator (line 22) | type SpotMarketRequestGenerator struct
    method listSpotMarketRequests (line 26) | func (g SpotMarketRequestGenerator) listSpotMarketRequests(client *pac...
    method createResources (line 35) | func (g SpotMarketRequestGenerator) createResources(spotMarketRequests...
    method InitResources (line 48) | func (g *SpotMarketRequestGenerator) InitResources() error {

FILE: providers/equinixmetal/ssh_key.go
  type SSHKeyGenerator (line 22) | type SSHKeyGenerator struct
    method listSSHKeys (line 26) | func (g SSHKeyGenerator) listSSHKeys(client *packngo.Client) ([]packng...
    method createResources (line 35) | func (g SSHKeyGenerator) createResources(sshLeyList []packngo.SSHKey) ...
    method InitResources (line 48) | func (g *SSHKeyGenerator) InitResources() error {

FILE: providers/equinixmetal/volume.go
  type VolumeGenerator (line 22) | type VolumeGenerator struct
    method listVolumes (line 26) | func (g VolumeGenerator) listVolumes(client *packngo.Client) ([]packng...
    method createResources (line 35) | func (g VolumeGenerator) createResources(volumeList []packngo.Volume) ...
    method InitResources (line 48) | func (g *VolumeGenerator) InitResources() error {

FILE: providers/fastly/fastly_provider.go
  type FastlyProvider (line 24) | type FastlyProvider struct
    method Init (line 30) | func (p *FastlyProvider) Init(args []string) error {
    method GetName (line 44) | func (p *FastlyProvider) GetName() string {
    method GetProviderData (line 48) | func (p *FastlyProvider) GetProviderData(arg ...string) map[string]int...
    method GetResourceConnections (line 58) | func (FastlyProvider) GetResourceConnections() map[string]map[string][...
    method GetSupportedService (line 62) | func (p *FastlyProvider) GetSupportedService() map[string]terraformuti...
    method InitService (line 70) | func (p *FastlyProvider) InitService(serviceName string, verbose bool)...

FILE: providers/fastly/fastly_service.go
  type FastlyService (line 21) | type FastlyService struct

FILE: providers/fastly/service_v1.go
  constant ServiceTypeVCL (line 24) | ServiceTypeVCL = "vcl"
  constant ServiceTypeWasm (line 26) | ServiceTypeWasm = "wasm"
  type ServiceV1Generator (line 29) | type ServiceV1Generator struct
    method loadServices (line 33) | func (g *ServiceV1Generator) loadServices(client *fastly.Client) ([]*f...
    method loadDictionaryItems (line 58) | func (g *ServiceV1Generator) loadDictionaryItems(client *fastly.Client...
    method loadACLEntries (line 88) | func (g *ServiceV1Generator) loadACLEntries(client *fastly.Client, ser...
    method loadDynamicSnippetContent (line 118) | func (g *ServiceV1Generator) loadDynamicSnippetContent(client *fastly....
    method InitResources (line 151) | func (g *ServiceV1Generator) InitResources() error {

FILE: providers/fastly/tls_subscription.go
  type TLSSubscriptionGenerator (line 24) | type TLSSubscriptionGenerator struct
    method loadTLSSubscriptions (line 28) | func (g *TLSSubscriptionGenerator) loadTLSSubscriptions(client *fastly...
    method loadTLSActivations (line 44) | func (g *TLSSubscriptionGenerator) loadTLSActivations(client *fastly.C...
    method InitResources (line 63) | func (g *TLSSubscriptionGenerator) InitResources() error {

FILE: providers/fastly/user.go
  type UserGenerator (line 22) | type UserGenerator struct
    method loadUsers (line 26) | func (g *UserGenerator) loadUsers(client *fastly.Client, customerID st...
    method InitResources (line 42) | func (g *UserGenerator) InitResources() error {

FILE: providers/gcp/addresses_gen.go
  type AddressesGenerator (line 31) | type AddressesGenerator struct
    method createResources (line 36) | func (g AddressesGenerator) createResources(ctx context.Context, addre...
    method InitResources (line 64) | func (g *AddressesGenerator) InitResources() error {

FILE: providers/gcp/autoscalers_gen.go
  type AutoscalersGenerator (line 32) | type AutoscalersGenerator struct
    method createResources (line 37) | func (g AutoscalersGenerator) createResources(ctx context.Context, aut...
    method InitResources (line 66) | func (g *AutoscalersGenerator) InitResources() error {

FILE: providers/gcp/backendBuckets_gen.go
  type BackendBucketsGenerator (line 31) | type BackendBucketsGenerator struct
    method createResources (line 36) | func (g BackendBucketsGenerator) createResources(ctx context.Context, ...
    method InitResources (line 64) | func (g *BackendBucketsGenerator) InitResources() error {

FILE: providers/gcp/backendServices_gen.go
  type BackendServicesGenerator (line 31) | type BackendServicesGenerator struct
    method createResources (line 36) | func (g BackendServicesGenerator) createResources(ctx context.Context,...
    method InitResources (line 63) | func (g *BackendServicesGenerator) InitResources() error {

FILE: providers/gcp/bigquery.go
  type BigQueryGenerator (line 28) | type BigQueryGenerator struct
    method createDatasets (line 33) | func (g BigQueryGenerator) createDatasets(ctx context.Context, dataSet...
    method createResourcesTables (line 63) | func (g *BigQueryGenerator) createResourcesTables(ctx context.Context,...
    method InitResources (line 95) | func (g *BigQueryGenerator) InitResources() error {
    method PostConvertHook (line 109) | func (g *BigQueryGenerator) PostConvertHook() error {

FILE: providers/gcp/cloudFunctions.go
  type CloudFunctionsGenerator (line 32) | type CloudFunctionsGenerator struct
    method createCloudFunctionsResources (line 37) | func (g CloudFunctionsGenerator) createCloudFunctionsResources(ctx con...
    method createCloudFunctions2ndGenResources (line 66) | func (g CloudFunctionsGenerator) createCloudFunctions2ndGenResources(c...
    method InitResources (line 98) | func (g *CloudFunctionsGenerator) InitResources() error {

FILE: providers/gcp/cloudbuild.go
  constant cbMaxPageSize (line 12) | cbMaxPageSize = 50
  type CloudBuildGenerator (line 14) | type CloudBuildGenerator struct
    method InitResources (line 19) | func (g *CloudBuildGenerator) InitResources() error {
    method createBuildTriggers (line 56) | func (g *CloudBuildGenerator) createBuildTriggers(triggers []*pb.Build...

FILE: providers/gcp/clouddns.go
  type CloudDNSGenerator (line 32) | type CloudDNSGenerator struct
    method createZonesResources (line 36) | func (g CloudDNSGenerator) createZonesResources(ctx context.Context, s...
    method createRecordsResources (line 64) | func (g CloudDNSGenerator) createRecordsResources(ctx context.Context,...
    method InitResources (line 95) | func (g *CloudDNSGenerator) InitResources() error {
    method PostConvertHook (line 107) | func (g *CloudDNSGenerator) PostConvertHook() error {

FILE: providers/gcp/cloudsql.go
  type CloudSQLGenerator (line 29) | type CloudSQLGenerator struct
    method loadDBInstances (line 33) | func (g *CloudSQLGenerator) loadDBInstances(svc *sqladmin.Service, pro...
    method loadDBs (line 60) | func (g *CloudSQLGenerator) loadDBs(svc *sqladmin.Service, instanceNam...
    method InitResources (line 87) | func (g *CloudSQLGenerator) InitResources() error {

FILE: providers/gcp/cloudtasks.go
  type CloudTaskGenerator (line 20) | type CloudTaskGenerator struct
    method loadCloudTaskQueues (line 24) | func (g *CloudTaskGenerator) loadCloudTaskQueues(ctx context.Context, ...
    method InitResources (line 64) | func (g *CloudTaskGenerator) InitResources() error {

FILE: providers/gcp/dataproc.go
  type DataprocGenerator (line 31) | type DataprocGenerator struct
    method createClusterResources (line 36) | func (g DataprocGenerator) createClusterResources(ctx context.Context,...
    method InitResources (line 93) | func (g *DataprocGenerator) InitResources() error {

FILE: providers/gcp/disks_gen.go
  type DisksGenerator (line 32) | type DisksGenerator struct
    method createResources (line 37) | func (g DisksGenerator) createResources(ctx context.Context, disksList...
    method InitResources (line 66) | func (g *DisksGenerator) InitResources() error {

FILE: providers/gcp/externalVpnGateways_gen.go
  type ExternalVpnGatewaysGenerator (line 31) | type ExternalVpnGatewaysGenerator struct
    method createResources (line 36) | func (g ExternalVpnGatewaysGenerator) createResources(ctx context.Cont...
    method InitResources (line 64) | func (g *ExternalVpnGatewaysGenerator) InitResources() error {

FILE: providers/gcp/firewall_gen.go
  type FirewallGenerator (line 31) | type FirewallGenerator struct
    method createResources (line 36) | func (g FirewallGenerator) createResources(ctx context.Context, firewa...
    method InitResources (line 64) | func (g *FirewallGenerator) InitResources() error {

FILE: providers/gcp/forwardingRules_gen.go
  type ForwardingRulesGenerator (line 31) | type ForwardingRulesGenerator struct
    method createResources (line 36) | func (g ForwardingRulesGenerator) createResources(ctx context.Context,...
    method InitResources (line 64) | func (g *ForwardingRulesGenerator) InitResources() error {

FILE: providers/gcp/gcp_compute_code_generator/backendServices.go
  type backendServices (line 17) | type backendServices struct
    method ifNeedRegion (line 21) | func (b backendServices) ifNeedRegion() bool {

FILE: providers/gcp/gcp_compute_code_generator/basicGcpResource.go
  type gcpResourceRenderable (line 17) | type gcpResourceRenderable interface
  type basicGCPResource (line 27) | type basicGCPResource struct
    method getTerraformName (line 34) | func (b basicGCPResource) getTerraformName() string {
    method getAdditionalFields (line 38) | func (b basicGCPResource) getAdditionalFields() map[string]string {
    method getAdditionalFieldsForRefresh (line 42) | func (b basicGCPResource) getAdditionalFieldsForRefresh() map[string]s...
    method getAllowEmptyValues (line 46) | func (b basicGCPResource) getAllowEmptyValues() []string {
    method ifNeedRegion (line 49) | func (b basicGCPResource) ifNeedRegion() bool {
    method ifNeedZone (line 53) | func (b basicGCPResource) ifNeedZone(zoneInParameters bool) bool {
    method ifIDWithZone (line 57) | func (b basicGCPResource) ifIDWithZone(zoneInParameters bool) bool {

FILE: providers/gcp/gcp_compute_code_generator/globalForwardingRules.go
  type globalForwardingRules (line 17) | type globalForwardingRules struct
    method ifNeedRegion (line 21) | func (b globalForwardingRules) ifNeedRegion() bool {

FILE: providers/gcp/gcp_compute_code_generator/instanceGroupManagers.go
  type instanceGroupManagers (line 17) | type instanceGroupManagers struct
    method ifNeedZone (line 21) | func (b instanceGroupManagers) ifNeedZone(zoneInParameters bool) bool {
    method ifIDWithZone (line 25) | func (b instanceGroupManagers) ifIDWithZone(zoneInParameters bool) bool {
    method ifNeedRegion (line 28) | func (b instanceGroupManagers) ifNeedRegion() bool {

FILE: providers/gcp/gcp_compute_code_generator/main.go
  constant pathForGenerateFiles (line 27) | pathForGenerateFiles = "/providers/gcp/"
  constant serviceTemplate (line 28) | serviceTemplate = `
  constant computeTemplate (line 122) | computeTemplate = `
  function main (line 153) | func main() {
  function codeFormat (line 236) | func codeFormat(src []byte) []byte {

FILE: providers/gcp/gcp_facade.go
  type GCPFacade (line 8) | type GCPFacade struct
    method SetProviderName (line 13) | func (s *GCPFacade) SetProviderName(providerName string) {
    method SetVerbose (line 17) | func (s *GCPFacade) SetVerbose(verbose bool) {
    method ParseFilters (line 21) | func (s *GCPFacade) ParseFilters(rawFilters []string) {
    method ParseFilter (line 25) | func (s *GCPFacade) ParseFilter(rawFilter string) []terraformutils.Res...
    method SetName (line 29) | func (s *GCPFacade) SetName(name string) {
    method GetName (line 32) | func (s *GCPFacade) GetName() string {
    method InitialCleanup (line 36) | func (s *GCPFacade) InitialCleanup() {
    method PostRefreshCleanup (line 40) | func (s *GCPFacade) PostRefreshCleanup() {
    method GetArgs (line 44) | func (s *GCPFacade) GetArgs() map[string]interface{} {
    method SetArgs (line 47) | func (s *GCPFacade) SetArgs(args map[string]interface{}) {
    method GetResources (line 51) | func (s *GCPFacade) GetResources() []terraformutils.Resource {
    method SetResources (line 54) | func (s *GCPFacade) SetResources(resources []terraformutils.Resource) {
    method InitResources (line 58) | func (s *GCPFacade) InitResources() error {
    method PostConvertHook (line 66) | func (s *GCPFacade) PostConvertHook() error {
    method PopulateIgnoreKeys (line 73) | func (s *GCPFacade) PopulateIgnoreKeys(providerWrapper *providerwrappe...

FILE: providers/gcp/gcp_provider.go
  type GCPProvider (line 27) | type GCPProvider struct
    method Init (line 69) | func (p *GCPProvider) Init(args []string) error {
    method GetName (line 83) | func (p *GCPProvider) GetName() string {
    method InitService (line 90) | func (p *GCPProvider) InitService(serviceName string, verbose bool) er...
    method GetSupportedService (line 107) | func (p *GCPProvider) GetSupportedService() map[string]terraformutils....
    method GetResourceConnections (line 130) | func (GCPProvider) GetResourceConnections() map[string]map[string][]st...
    method GetProviderData (line 188) | func (p GCPProvider) GetProviderData(arg ...string) map[string]interfa...
  function GetRegions (line 34) | func GetRegions(project string) []string {
  function getRegion (line 50) | func getRegion(project, regionName string) *compute.Region {

FILE: providers/gcp/gcp_service.go
  type GCPService (line 21) | type GCPService struct
    method applyCustomProviderType (line 25) | func (s *GCPService) applyCustomProviderType(resources []terraformutil...

FILE: providers/gcp/gcs.go
  type GcsGenerator (line 32) | type GcsGenerator struct
    method createBucketsResources (line 36) | func (g *GcsGenerator) createBucketsResources(ctx context.Context, gcs...
    method createNotificationResources (line 132) | func (g *GcsGenerator) createNotificationResources(gcsService *storage...
    method InitResources (line 184) | func (g *GcsGenerator) InitResources() error {
    method PostConvertHook (line 205) | func (g *GcsGenerator) PostConvertHook() error {

FILE: providers/gcp/gke.go
  type GkeGenerator (line 32) | type GkeGenerator struct
    method initClusters (line 36) | func (g *GkeGenerator) initClusters(clusters *container.ListClustersRe...
    method initNodePools (line 71) | func (g *GkeGenerator) initNodePools(nodePools []*container.NodePool, ...
    method InitResources (line 94) | func (g *GkeGenerator) InitResources() error {
    method PostConvertHook (line 113) | func (g *GkeGenerator) PostConvertHook() error {

FILE: providers/gcp/globalAddresses_gen.go
  type GlobalAddressesGenerator (line 31) | type GlobalAddressesGenerator struct
    method createResources (line 36) | func (g GlobalAddressesGenerator) createResources(ctx context.Context,...
    method InitResources (line 64) | func (g *GlobalAddressesGenerator) InitResources() error {

FILE: providers/gcp/globalForwardingRules_gen.go
  type GlobalForwardingRulesGenerator (line 31) | type GlobalForwardingRulesGenerator struct
    method createResources (line 36) | func (g GlobalForwardingRulesGenerator) createResources(ctx context.Co...
    method InitResources (line 63) | func (g *GlobalForwardingRulesGenerator) InitResources() error {

FILE: providers/gcp/healthChecks_gen.go
  type HealthChecksGenerator (line 31) | type HealthChecksGenerator struct
    method createResources (line 36) | func (g HealthChecksGenerator) createResources(ctx context.Context, he...
    method InitResources (line 64) | func (g *HealthChecksGenerator) InitResources() error {

FILE: providers/gcp/httpHealthChecks_gen.go
  type HttpHealthChecksGenerator (line 31) | type HttpHealthChecksGenerator struct
    method createResources (line 36) | func (g HttpHealthChecksGenerator) createResources(ctx context.Context...
    method InitResources (line 64) | func (g *HttpHealthChecksGenerator) InitResources() error {

FILE: providers/gcp/httpsHealthChecks_gen.go
  type HttpsHealthChecksGenerator (line 31) | type HttpsHealthChecksGenerator struct
    method createResources (line 36) | func (g HttpsHealthChecksGenerator) createResources(ctx context.Contex...
    method InitResources (line 64) | func (g *HttpsHealthChecksGenerator) InitResources() error {

FILE: providers/gcp/iam.go
  type IamGenerator (line 34) | type IamGenerator struct
    method createServiceAccountResources (line 38) | func (g IamGenerator) createServiceAccountResources(serviceAccountsIte...
    method createIamCustomRoleResources (line 65) | func (g *IamGenerator) createIamCustomRoleResources(rolesResponse *adm...
    method createIamMemberResources (line 91) | func (g *IamGenerator) createIamMemberResources(policy *cloudresourcem...
    method InitResources (line 114) | func (g *IamGenerator) InitResources() error {

FILE: providers/gcp/images_gen.go
  type ImagesGenerator (line 31) | type ImagesGenerator struct
    method createResources (line 36) | func (g ImagesGenerator) createResources(ctx context.Context, imagesLi...
    method InitResources (line 64) | func (g *ImagesGenerator) InitResources() error {

FILE: providers/gcp/instanceGroupManagers_gen.go
  type InstanceGroupManagersGenerator (line 32) | type InstanceGroupManagersGenerator struct
    method createResources (line 37) | func (g InstanceGroupManagersGenerator) createResources(ctx context.Co...
    method InitResources (line 66) | func (g *InstanceGroupManagersGenerator) InitResources() error {

FILE: providers/gcp/instanceGroups_gen.go
  type InstanceGroupsGenerator (line 32) | type InstanceGroupsGenerator struct
    method createResources (line 37) | func (g InstanceGroupsGenerator) createResources(ctx context.Context, ...
    method InitResources (line 66) | func (g *InstanceGroupsGenerator) InitResources() error {

FILE: providers/gcp/instanceTemplates_gen.go
  type InstanceTemplatesGenerator (line 31) | type InstanceTemplatesGenerator struct
    method createResources (line 36) | func (g InstanceTemplatesGenerator) createResources(ctx context.Contex...
    method InitResources (line 64) | func (g *InstanceTemplatesGenerator) InitResources() error {

FILE: providers/gcp/instances.go
  type InstancesGenerator (line 31) | type InstancesGenerator struct
    method createResources (line 36) | func (g InstancesGenerator) createResources(ctx context.Context, insta...
    method InitResources (line 70) | func (g *InstancesGenerator) InitResources() error {

FILE: providers/gcp/interconnectAttachments_gen.go
  type InterconnectAttachmentsGenerator (line 31) | type InterconnectAttachmentsGenerator struct
    method createResources (line 36) | func (g InterconnectAttachmentsGenerator) createResources(ctx context....
    method InitResources (line 64) | func (g *InterconnectAttachmentsGenerator) InitResources() error {

FILE: providers/gcp/kms.go
  type KmsGenerator (line 31) | type KmsGenerator struct
    method createKmsRingResources (line 35) | func (g KmsGenerator) createKmsRingResources(ctx context.Context, keyR...
    method createKmsKeyResources (line 63) | func (g *KmsGenerator) createKmsKeyResources(ctx context.Context, keyR...
    method InitResources (line 90) | func (g *KmsGenerator) InitResources() error {
    method PostConvertHook (line 103) | func (g *KmsGenerator) PostConvertHook() error {

FILE: providers/gcp/logging.go
  type LoggingGenerator (line 30) | type LoggingGenerator struct
    method loadLoggingMetrics (line 34) | func (g *LoggingGenerator) loadLoggingMetrics(ctx context.Context, cli...
    method InitResources (line 63) | func (g *LoggingGenerator) InitResources() error {

FILE: providers/gcp/memoryStore.go
  type MemoryStoreGenerator (line 32) | type MemoryStoreGenerator struct
    method createResources (line 37) | func (g MemoryStoreGenerator) createResources(ctx context.Context, red...
    method InitResources (line 67) | func (g *MemoryStoreGenerator) InitResources() error {

FILE: providers/gcp/monitoring.go
  type MonitoringGenerator (line 33) | type MonitoringGenerator struct
    method loadAlerts (line 37) | func (g *MonitoringGenerator) loadAlerts(ctx context.Context, project ...
    method loadGroups (line 74) | func (g *MonitoringGenerator) loadGroups(ctx context.Context, project ...
    method loadNotificationChannel (line 110) | func (g *MonitoringGenerator) loadNotificationChannel(ctx context.Cont...
    method loadUptimeCheck (line 145) | func (g *MonitoringGenerator) loadUptimeCheck(ctx context.Context, pro...
    method InitResources (line 184) | func (g *MonitoringGenerator) InitResources() error {

FILE: providers/gcp/networkEndpointGroups_gen.go
  type NetworkEndpointGroupsGenerator (line 32) | type NetworkEndpointGroupsGenerator struct
    method createResources (line 37) | func (g NetworkEndpointGroupsGenerator) createResources(ctx context.Co...
    method InitResources (line 66) | func (g *NetworkEndpointGroupsGenerator) InitResources() error {

FILE: providers/gcp/networks_gen.go
  type NetworksGenerator (line 31) | type NetworksGenerator struct
    method createResources (line 36) | func (g NetworksGenerator) createResources(ctx context.Context, networ...
    method InitResources (line 64) | func (g *NetworksGenerator) InitResources() error {

FILE: providers/gcp/nodeGroups_gen.go
  type NodeGroupsGenerator (line 32) | type NodeGroupsGenerator struct
    method createResources (line 37) | func (g NodeGroupsGenerator) createResources(ctx context.Context, node...
    method InitResources (line 66) | func (g *NodeGroupsGenerator) InitResources() error {

FILE: providers/gcp/nodeTemplates_gen.go
  type NodeTemplatesGenerator (line 31) | type NodeTemplatesGenerator struct
    method createResources (line 36) | func (g NodeTemplatesGenerator) createResources(ctx context.Context, n...
    method InitResources (line 64) | func (g *NodeTemplatesGenerator) InitResources() error {

FILE: providers/gcp/packetMirrorings_gen.go
  type PacketMirroringsGenerator (line 31) | type PacketMirroringsGenerator struct
    method createResources (line 36) | func (g PacketMirroringsGenerator) createResources(ctx context.Context...
    method InitResources (line 64) | func (g *PacketMirroringsGenerator) InitResources() error {

FILE: providers/gcp/project.go
  type ProjectGenerator (line 25) | type ProjectGenerator struct
    method InitResources (line 30) | func (g *ProjectGenerator) InitResources() error {

FILE: providers/gcp/pubsub.go
  type PubsubGenerator (line 31) | type PubsubGenerator struct
    method createSubscriptionsResources (line 36) | func (g PubsubGenerator) createSubscriptionsResources(ctx context.Cont...
    method createTopicsListResources (line 63) | func (g PubsubGenerator) createTopicsListResources(ctx context.Context...
    method InitResources (line 90) | func (g *PubsubGenerator) InitResources() error {
    method PostConvertHook (line 109) | func (g *PubsubGenerator) PostConvertHook() error {

FILE: providers/gcp/regionAutoscalers_gen.go
  type RegionAutoscalersGenerator (line 31) | type RegionAutoscalersGenerator struct
    method createResources (line 36) | func (g RegionAutoscalersGenerator) createResources(ctx context.Contex...
    method InitResources (line 64) | func (g *RegionAutoscalersGenerator) InitResources() error {

FILE: providers/gcp/regionBackendServices_gen.go
  type RegionBackendServicesGenerator (line 31) | type RegionBackendServicesGenerator struct
    method createResources (line 36) | func (g RegionBackendServicesGenerator) createResources(ctx context.Co...
    method InitResources (line 64) | func (g *RegionBackendServicesGenerator) InitResources() error {

FILE: providers/gcp/regionDisks_gen.go
  type RegionDisksGenerator (line 31) | type RegionDisksGenerator struct
    method createResources (line 36) | func (g RegionDisksGenerator) createResources(ctx context.Context, reg...
    method InitResources (line 64) | func (g *RegionDisksGenerator) InitResources() error {

FILE: providers/gcp/regionHealthChecks_gen.go
  type RegionHealthChecksGenerator (line 31) | type RegionHealthChecksGenerator struct
    method createResources (line 36) | func (g RegionHealthChecksGenerator) createResources(ctx context.Conte...
    method InitResources (line 64) | func (g *RegionHealthChecksGenerator) InitResources() error {

FILE: providers/gcp/regionInstanceGroupManagers_gen.go
  type RegionInstanceGroupManagersGenerator (line 31) | type RegionInstanceGroupManagersGenerator struct
    method createResources (line 36) | func (g RegionInstanceGroupManagersGenerator) createResources(ctx cont...
    method InitResources (line 64) | func (g *RegionInstanceGroupManagersGenerator) InitResources() error {

FILE: providers/gcp/regionInstanceGroups_gen.go
  type RegionInstanceGroupsGenerator (line 31) | type RegionInstanceGroupsGenerator struct
    method createResources (line 36) | func (g RegionInstanceGroupsGenerator) createResources(ctx context.Con...
    method InitResources (line 64) | func (g *RegionInstanceGroupsGenerator) InitResources() error {

FILE: providers/gcp/regionSslCertificates_gen.go
  type RegionSslCertificatesGenerator (line 31) | type RegionSslCertificatesGenerator struct
    method createResources (line 36) | func (g RegionSslCertificatesGenerator) createResources(ctx context.Co...
    method InitResources (line 64) | func (g *RegionSslCertificatesGenerator) InitResources() error {

FILE: providers/gcp/regionTargetHttpProxies_gen.go
  type RegionTargetHttpProxiesGenerator (line 31) | type RegionTargetHttpProxiesGenerator struct
    method createResources (line 36) | func (g RegionTargetHttpProxiesGenerator) createResources(ctx context....
    method InitResources (line 64) | func (g *RegionTargetHttpProxiesGenerator) InitResources() error {

FILE: providers/gcp/regionTargetHttpsProxies_gen.go
  type RegionTargetHttpsProxiesGenerator (line 31) | type RegionTargetHttpsProxiesGenerator struct
    method createResources (line 36) | func (g RegionTargetHttpsProxiesGenerator) createResources(ctx context...
    method InitResources (line 64) | func (g *RegionTargetHttpsProxiesGenerator) InitResources() error {

FILE: providers/gcp/regionUrlMaps_gen.go
  type RegionUrlMapsGenerator (line 31) | type RegionUrlMapsGenerator struct
    method createResources (line 36) | func (g RegionUrlMapsGenerator) createResources(ctx context.Context, r...
    method InitResources (line 64) | func (g *RegionUrlMapsGenerator) InitResources() error {

FILE: providers/gcp/reservations_gen.go
  type ReservationsGenerator (line 32) | type ReservationsGenerator struct
    method createResources (line 37) | func (g ReservationsGenerator) createResources(ctx context.Context, re...
    method InitResources (line 66) | func (g *ReservationsGenerator) InitResources() error {

FILE: providers/gcp/resourcePolicies_gen.go
  type ResourcePoliciesGenerator (line 31) | type ResourcePoliciesGenerator struct
    method createResources (line 36) | func (g ResourcePoliciesGenerator) createResources(ctx context.Context...
    method InitResources (line 64) | func (g *ResourcePoliciesGenerator) InitResources() error {

FILE: providers/gcp/routers_gen.go
  type RoutersGenerator (line 31) | type RoutersGenerator struct
    method createResources (line 36) | func (g RoutersGenerator) createResources(ctx context.Context, routers...
    method InitResources (line 64) | func (g *RoutersGenerator) InitResources() error {

FILE: providers/gcp/routes_gen.go
  type RoutesGenerator (line 31) | type RoutesGenerator struct
    method createResources (line 36) | func (g RoutesGenerator) createResources(ctx context.Context, routesLi...
    method InitResources (line 64) | func (g *RoutesGenerator) InitResources() error {

FILE: providers/gcp/schedulerJobs.go
  type SchedulerJobsGenerator (line 32) | type SchedulerJobsGenerator struct
    method createResources (line 37) | func (g SchedulerJobsGenerator) createResources(ctx context.Context, j...
    method InitResources (line 65) | func (g *SchedulerJobsGenerator) InitResources() error {

FILE: providers/gcp/securityPolicies_gen.go
  type SecurityPoliciesGenerator (line 31) | type SecurityPoliciesGenerator struct
    method createResources (line 36) | func (g SecurityPoliciesGenerator) createResources(ctx context.Context...
    method InitResources (line 64) | func (g *SecurityPoliciesGenerator) InitResources() error {

FILE: providers/gcp/sslCertificates_gen.go
  type SslCertificatesGenerator (line 31) | type SslCertificatesGenerator struct
    method createResources (line 36) | func (g SslCertificatesGenerator) createResources(ctx context.Context,...
    method InitResources (line 64) | func (g *SslCertificatesGenerator) InitResources() error {

FILE: providers/gcp/sslPolicies_gen.go
  type SslPoliciesGenerator (line 31) | type SslPoliciesGenerator struct
    method createResources (line 36) | func (g SslPoliciesGenerator) createResources(ctx context.Context, ssl...
    method InitResources (line 64) | func (g *SslPoliciesGenerator) InitResources() error {

FILE: providers/gcp/subnetworks_gen.go
  type SubnetworksGenerator (line 31) | type SubnetworksGenerator struct
    method createResources (line 36) | func (g SubnetworksGenerator) createResources(ctx context.Context, sub...
    method InitResources (line 64) | func (g *SubnetworksGenerator) InitResources() error {

FILE: providers/gcp/targetHttpProxies_gen.go
  type TargetHttpProxiesGenerator (line 31) | type TargetHttpProxiesGenerator struct
    method createResources (line 36) | func (g TargetHttpProxiesGenerator) createResources(ctx context.Contex...
    method InitResources (line 64) | func (g *TargetHttpProxiesGenerator) InitResources() error {

FILE: providers/gcp/targetHttpsProxies_gen.go
  type TargetHttpsProxiesGenerator (line 31) | type TargetHttpsProxiesGenerator struct
    method createResources (line 36) | func (g TargetHttpsProxiesGenerator) createResources(ctx context.Conte...
    method InitResources (line 64) | func (g *TargetHttpsProxiesGenerator) InitResources() error {

FILE: providers/gcp/targetInstances_gen.go
  type TargetInstancesGenerator (line 32) | type TargetInstancesGenerator struct
    method createResources (line 37) | func (g TargetInstancesGenerator) createResources(ctx context.Context,...
    method InitResources (line 66) | func (g *TargetInstancesGenerator) InitResources() error {

FILE: providers/gcp/targetPools_gen.go
  type TargetPoolsGenerator (line 31) | type TargetPoolsGenerator struct
    method createResources (line 36) | func (g TargetPoolsGenerator) createResources(ctx context.Context, tar...
    method InitResources (line 64) | func (g *TargetPoolsGenerator) InitResources() error {

FILE: providers/gcp/targetSslProxies_gen.go
  type TargetSslProxiesGenerator (line 31) | type TargetSslProxiesGenerator struct
    method createResources (line 36) | func (g TargetSslProxiesGenerator) createResources(ctx context.Context...
    method InitResources (line 64) | func (g *TargetSslProxiesGenerator) InitResources() error {

FILE: providers/gcp/targetTcpProxies_gen.go
  type TargetTcpProxiesGenerator (line 31) | type TargetTcpProxiesGenerator struct
    method createResources (line 36) | func (g TargetTcpProxiesGenerator) createResources(ctx context.Context...
    method InitResources (line 64) | func (g *TargetTcpProxiesGenerator) InitResources() error {

FILE: providers/gcp/targetVpnGateways_gen.go
  type TargetVpnGatewaysGenerator (line 31) | type TargetVpnGatewaysGenerator struct
    method createResources (line 36) | func (g TargetVpnGatewaysGenerator) createResources(ctx context.Contex...
    method InitResources (line 64) | func (g *TargetVpnGatewaysGenerator) InitResources() error {

FILE: providers/gcp/urlMaps_gen.go
  type UrlMapsGenerator (line 31) | type UrlMapsGenerator struct
    method createResources (line 36) | func (g UrlMapsGenerator) createResources(ctx context.Context, urlMaps...
    method InitResources (line 64) | func (g *UrlMapsGenerator) InitResources() error {

FILE: providers/gcp/vpnTunnels_gen.go
  type VpnTunnelsGenerator (line 31) | type VpnTunnelsGenerator struct
    method createResources (line 36) | func (g VpnTunnelsGenerator) createResources(ctx context.Context, vpnT...
    method InitResources (line 64) | func (g *VpnTunnelsGenerator) InitResources() error {

FILE: providers/github/github_organization.go
  type OrganizationGenerator (line 21) | type OrganizationGenerator struct
    method InitResources (line 26) | func (g *OrganizationGenerator) InitResources() error {

FILE: providers/github/github_provider.go
  type GithubProvider (line 27) | type GithubProvider struct
    method GetResourceConnections (line 37) | func (p GithubProvider) GetResourceConnections() map[string]map[string...
    method GetProviderData (line 41) | func (p GithubProvider) GetProviderData(arg ...string) map[string]inte...
    method GetConfig (line 51) | func (p *GithubProvider) GetConfig() cty.Value {
    method Init (line 74) | func (p *GithubProvider) Init(args []string) error {
    method GetName (line 112) | func (p *GithubProvider) GetName() string {
    method InitService (line 116) | func (p *GithubProvider) InitService(serviceName string, verbose bool)...
    method GetSupportedService (line 137) | func (p *GithubProvider) GetSupportedService() map[string]terraformuti...

FILE: providers/github/github_service.go
  constant githubDefaultURL (line 27) | githubDefaultURL = "https://api.github.com/"
  type GithubService (line 29) | type GithubService struct
    method createClient (line 33) | func (g *GithubService) createClient() (*github.Client, error) {
    method createRegularClient (line 40) | func (g *GithubService) createRegularClient() *github.Client {
    method createEnterpriseClient (line 56) | func (g *GithubService) createEnterpriseClient() (*github.Client, erro...

FILE: providers/github/members.go
  type MembersGenerator (line 27) | type MembersGenerator struct
    method InitResources (line 32) | func (g *MembersGenerator) InitResources() error {
  function createMembershipsResources (line 45) | func createMembershipsResources(ctx context.Context, client *githubAPI.C...

FILE: providers/github/organizationWebhooks.go
  type OrganizationWebhooksGenerator (line 27) | type OrganizationWebhooksGenerator struct
    method InitResources (line 32) | func (g *OrganizationWebhooksGenerator) InitResources() error {

FILE: providers/github/organization_block.go
  type OrganizationBlockGenerator (line 26) | type OrganizationBlockGenerator struct
    method InitResources (line 31) | func (g *OrganizationBlockGenerator) InitResources() error {
  function createOrganizationBlocksResources (line 44) | func createOrganizationBlocksResources(ctx context.Context, client *gith...

FILE: providers/github/organization_project.go
  type OrganizationProjectGenerator (line 27) | type OrganizationProjectGenerator struct
    method InitResources (line 32) | func (g *OrganizationProjectGenerator) InitResources() error {
  function createOrganizationProjects (line 45) | func createOrganizationProjects(ctx context.Context, client *githubAPI.C...

FILE: providers/github/repositories.go
  type RepositoriesGenerator (line 26) | type RepositoriesGenerator struct
    method InitResources (line 31) | func (g *RepositoriesGenerator) InitResources() error {
    method createRepositoryWebhookResources (line 73) | func (g *RepositoriesGenerator) createRepositoryWebhookResources(ctx c...
    method createRepositoryBranchProtectionResources (line 95) | func (g *RepositoriesGenerator) createRepositoryBranchProtectionResour...
    method createRepositoryCollaboratorResources (line 115) | func (g *RepositoriesGenerator) createRepositoryCollaboratorResources(...
    method createRepositoryDeployKeyResources (line 133) | func (g *RepositoriesGenerator) createRepositoryDeployKeyResources(ctx...
    method PostConvertHook (line 152) | func (g *RepositoriesGenerator) PostConvertHook() error {

FILE: providers/github/teams.go
  type TeamsGenerator (line 27) | type TeamsGenerator struct
    method createTeamsResources (line 31) | func (g *TeamsGenerator) createTeamsResources(ctx context.Context, tea...
    method createTeamMembersResources (line 49) | func (g *TeamsGenerator) createTeamMembersResources(ctx context.Contex...
    method createTeamRepositoriesResources (line 67) | func (g *TeamsGenerator) createTeamRepositoriesResources(ctx context.C...
    method InitResources (line 86) | func (g *TeamsGenerator) InitResources() error {
    method PostConvertHook (line 114) | func (g *TeamsGenerator) PostConvertHook() error {

FILE: providers/github/user_ssh_keys.go
  type UserSSHKeyGenerator (line 27) | type UserSSHKeyGenerator struct
    method InitResources (line 32) | func (g *UserSSHKeyGenerator) InitResources() error {

FILE: providers/gitlab/gitlab_provider.go
  type GitLabProvider (line 25) | type GitLabProvider struct
    method GetResourceConnections (line 32) | func (p GitLabProvider) GetResourceConnections() map[string]map[string...
    method GetProviderData (line 36) | func (p GitLabProvider) GetProviderData(arg ...string) map[string]inte...
    method GetConfig (line 48) | func (p *GitLabProvider) GetConfig() cty.Value {
    method Init (line 57) | func (p *GitLabProvider) Init(args []string) error {
    method GetName (line 76) | func (p *GitLabProvider) GetName() string {
    method InitService (line 80) | func (p *GitLabProvider) InitService(serviceName string, verbose bool)...
    method GetSupportedService (line 98) | func (p *GitLabProvider) GetSupportedService() map[string]terraformuti...

FILE: providers/gitlab/gitlab_service.go
  constant gitLabDefaultURL (line 22) | gitLabDefaultURL = "https://gitlab.com/api/v4/"
  type GitLabService (line 24) | type GitLabService struct
    method createClient (line 28) | func (g *GitLabService) createClient() (*gitlab.Client, error) {
    method createRegularClient (line 35) | func (g *GitLabService) createRegularClient() (*gitlab.Client, error) {
    method createEnterpriseClient (line 39) | func (g *GitLabService) createEnterpriseClient() (*gitlab.Client, erro...

FILE: providers/gitlab/group.go
  type GroupGenerator (line 28) | type GroupGenerator struct
    method InitResources (line 33) | func (g *GroupGenerator) InitResources() error {
  function createGroups (line 46) | func createGroups(ctx context.Context, client *gitlab.Client, groupID st...
  function createGroupVariables (line 72) | func createGroupVariables(ctx context.Context, client *gitlab.Client, gr...
  function createGroupMembership (line 104) | func createGroupMembership(ctx context.Context, client *gitlab.Client, g...
  function getGroupResourceName (line 136) | func getGroupResourceName(group *gitlab.Group) string {

FILE: providers/gitlab/project.go
  type ProjectGenerator (line 28) | type ProjectGenerator struct
    method InitResources (line 33) | func (g *ProjectGenerator) InitResources() error {
  function createProjects (line 46) | func createProjects(ctx context.Context, client *gitlab.Client, group st...
  function createProjectVariables (line 88) | func createProjectVariables(ctx context.Context, client *gitlab.Client, ...
  function createBranchProtections (line 120) | func createBranchProtections(ctx context.Context, client *gitlab.Client,...
  function createTagProtections (line 152) | func createTagProtections(ctx context.Context, client *gitlab.Client, pr...
  function createProjectMembership (line 184) | func createProjectMembership(ctx context.Context, client *gitlab.Client,...
  function getProjectResourceName (line 216) | func getProjectResourceName(project *gitlab.Project) string {

FILE: providers/gmailfilter/filter.go
  type FilterGenerator (line 24) | type FilterGenerator struct
    method createResources (line 28) | func (g FilterGenerator) createResources(filters []*gmail.Filter) []te...
    method InitResources (line 43) | func (g *FilterGenerator) InitResources() error {

FILE: providers/gmailfilter/gmailfilter_provider.go
  type GmailfilterProvider (line 24) | type GmailfilterProvider struct
    method Init (line 30) | func (p *GmailfilterProvider) Init(args []string) error {
    method GetName (line 48) | func (p *GmailfilterProvider) GetName() string {
    method InitService (line 52) | func (p *GmailfilterProvider) InitService(serviceName string, verbose ...
    method GetSupportedService (line 69) | func (p *GmailfilterProvider) GetSupportedService() map[string]terrafo...
    method GetResourceConnections (line 76) | func (p *GmailfilterProvider) GetResourceConnections() map[string]map[...
    method GetProviderData (line 86) | func (p *GmailfilterProvider) GetProviderData(arg ...string) map[strin...

FILE: providers/gmailfilter/gmailfilter_service.go
  constant gmailUser (line 34) | gmailUser = "me"
  type GmailfilterService (line 41) | type GmailfilterService struct
    method gmailService (line 45) | func (s *GmailfilterService) gmailService(ctx context.Context) (*gmail...
    method validateCredentials (line 64) | func (s *GmailfilterService) validateCredentials(creds string) error {
    method getTokenSource (line 74) | func (s *GmailfilterService) getTokenSource(creds string, impersonated...
  type serviceAccountFile (line 102) | type serviceAccountFile struct
  function parseJSON (line 109) | func parseJSON(result interface{}, contents string) error {

FILE: providers/gmailfilter/label.go
  type LabelGenerator (line 25) | type LabelGenerator struct
    method createResources (line 29) | func (g LabelGenerator) createResources(labels []*gmail.Label) []terra...
    method InitResources (line 47) | func (g *LabelGenerator) InitResources() error {

FILE: providers/grafana/dashboard.go
  type DashboardGenerator (line 11) | type DashboardGenerator struct
    method InitResources (line 15) | func (g *DashboardGenerator) InitResources() error {
    method createDashboardResources (line 29) | func (g *DashboardGenerator) createDashboardResources(client *gapi.Cli...

FILE: providers/grafana/folder.go
  type FolderGenerator (line 10) | type FolderGenerator struct
    method InitResources (line 14) | func (g *FolderGenerator) InitResources() error {
    method createFolderResources (line 28) | func (g *FolderGenerator) createFolderResources(client *gapi.Client) e...

FILE: providers/grafana/grafana_provider.go
  type GrafanaProvider (line 26) | type GrafanaProvider struct
    method GetResourceConnections (line 37) | func (p GrafanaProvider) GetResourceConnections() map[string]map[strin...
    method GetProviderData (line 45) | func (p GrafanaProvider) GetProviderData(arg ...string) map[string]int...
    method GetConfig (line 61) | func (p *GrafanaProvider) GetConfig() cty.Value {
    method Init (line 73) | func (p *GrafanaProvider) Init(args []string) error {
    method GetName (line 101) | func (p *GrafanaProvider) GetName() string {
    method InitService (line 105) | func (p *GrafanaProvider) InitService(serviceName string, verbose bool...
    method GetSupportedService (line 127) | func (p *GrafanaProvider) GetSupportedService() map[string]terraformut...

FILE: providers/grafana/grafana_service.go
  type GrafanaService (line 30) | type GrafanaService struct
    method buildClient (line 34) | func (s *GrafanaService) buildClient() (*gapi.Client, error) {

FILE: providers/heroku/account_feature.go
  type AccountFeatureGenerator (line 24) | type AccountFeatureGenerator struct
    method createResources (line 28) | func (g AccountFeatureGenerator) createResources(accountFeatureList []...
    method InitResources (line 43) | func (g *AccountFeatureGenerator) InitResources() error {

FILE: providers/heroku/app.go
  type AppGenerator (line 27) | type AppGenerator struct
    method createResources (line 31) | func (g AppGenerator) createResources(appList []heroku.App) ([]terrafo...
    method InitResources (line 54) | func (g *AppGenerator) InitResources() error {
    method getSettableConfigVars (line 148) | func (g AppGenerator) getSettableConfigVars(appID string) (map[string]...
    method createAppFeatureResources (line 178) | func (g AppGenerator) createAppFeatureResources(ctx context.Context, s...
    method createAddonResources (line 206) | func (g AppGenerator) createAddonResources(ctx context.Context, svc *h...
    method createAddonAttachmentResources (line 232) | func (g AppGenerator) createAddonAttachmentResources(ctx context.Conte...
    method createAppWebhookResources (line 268) | func (g AppGenerator) createAppWebhookResources(ctx context.Context, s...
    method createSslResources (line 290) | func (g AppGenerator) createSslResources(ctx context.Context, svc *her...
    method createDomainResources (line 319) | func (g AppGenerator) createDomainResources(ctx context.Context, svc *...
    method createDrainResources (line 343) | func (g AppGenerator) createDrainResources(ctx context.Context, svc *h...
    method createFormationResources (line 365) | func (g AppGenerator) createFormationResources(ctx context.Context, sv...

FILE: providers/heroku/heroku_provider.go
  type HerokuProvider (line 23) | type HerokuProvider struct
    method Init (line 30) | func (p *HerokuProvider) Init(args []string) error {
    method GetName (line 40) | func (p *HerokuProvider) GetName() string {
    method GetSource (line 44) | func (p *HerokuProvider) GetSource() string {
    method GetProviderData (line 48) | func (p *HerokuProvider) GetProviderData(arg ...string) map[string]int...
    method GetResourceConnections (line 56) | func (HerokuProvider) GetResourceConnections() map[string]map[string][...
    method GetSupportedService (line 60) | func (p *HerokuProvider) GetSupportedService() map[string]terraformuti...
    method InitService (line 71) | func (p *HerokuProvider) InitService(serviceName string, verbose bool)...

FILE: providers/heroku/heroku_service.go
  type HerokuService (line 22) | type HerokuService struct
    method generateService (line 26) | func (s *HerokuService) generateService() *heroku.Service {

FILE: providers/heroku/pipeline.go
  type PipelineGenerator (line 24) | type PipelineGenerator struct
    method createResources (line 28) | func (g PipelineGenerator) createResources(pipelineList []heroku.Pipel...
    method InitResources (line 41) | func (g *PipelineGenerator) InitResources() error {

FILE: providers/heroku/pipeline_coupling.go
  type PipelineCouplingGenerator (line 24) | type PipelineCouplingGenerator struct
    method createResources (line 28) | func (g PipelineCouplingGenerator) createResources(pipelineCouplingLis...
    method InitResources (line 41) | func (g *PipelineCouplingGenerator) InitResources() error {

FILE: providers/heroku/team_collaborator.go
  type TeamCollaboratorGenerator (line 25) | type TeamCollaboratorGenerator struct
    method createResources (line 29) | func (g TeamCollaboratorGenerator) createResources(svc *heroku.Service...
    method InitResources (line 56) | func (g *TeamCollaboratorGenerator) InitResources() error {

FILE: providers/heroku/team_member.go
  type TeamMemberGenerator (line 26) | type TeamMemberGenerator struct
    method createResources (line 30) | func (g TeamMemberGenerator) createResources(svc *heroku.Service, team...
    method InitResources (line 49) | func (g *TeamMemberGenerator) InitResources() error {

FILE: providers/honeycombio/board.go
  type BoardGenerator (line 10) | type BoardGenerator struct
    method InitResources (line 14) | func (g *BoardGenerator) InitResources() error {

FILE: providers/honeycombio/burn_alert.go
  type BurnAlertGenerator (line 10) | type BurnAlertGenerator struct
    method InitResources (line 14) | func (g *BurnAlertGenerator) InitResources() error {

FILE: providers/honeycombio/column.go
  type ColumnGenerator (line 10) | type ColumnGenerator struct
    method InitResources (line 14) | func (g *ColumnGenerator) InitResources() error {

FILE: providers/honeycombio/dataset.go
  type DatasetGenerator (line 9) | type DatasetGenerator struct
    method InitResources (line 13) | func (g *DatasetGenerator) InitResources() error {

FILE: providers/honeycombio/derived_column.go
  type DerivedColumnGenerator (line 10) | type DerivedColumnGenerator struct
    method InitResources (line 14) | func (g *DerivedColumnGenerator) InitResources() error {

FILE: providers/honeycombio/honeycomb_provider.go
  constant honeycombDefaultURL (line 25) | honeycombDefaultURL = "https://api.honeycomb.io"
  constant honeycombTerraformerProviderVersion (line 26) | honeycombTerraformerProviderVersion = "0.0.2"
  type HoneycombProvider (line 28) | type HoneycombProvider struct
    method GetProviderData (line 35) | func (p HoneycombProvider) GetProviderData(arg ...string) map[string]i...
    method GetName (line 45) | func (p *HoneycombProvider) GetName() string {
    method GetResourceConnections (line 51) | func (p HoneycombProvider) GetResourceConnections() map[string]map[str...
    method Init (line 84) | func (p *HoneycombProvider) Init(args []string) error {
    method GetConfig (line 99) | func (p *HoneycombProvider) GetConfig() cty.Value {
    method InitService (line 106) | func (p *HoneycombProvider) InitService(serviceName string, verbose bo...
    method GetSupportedService (line 123) | func (p *HoneycombProvider) GetSupportedService() map[string]terraform...

FILE: providers/honeycombio/honeycomb_service.go
  type HoneycombService (line 27) | type HoneycombService struct
    method newClient (line 32) | func (s *HoneycombService) newClient() (*hnyclient.Client, error) {
    method isClassicEnvironment (line 81) | func (s *HoneycombService) isClassicEnvironment() bool {
    method environmentWideDataset (line 87) | func (s *HoneycombService) environmentWideDataset() hnyclient.Dataset {
  constant environmentWideDatasetSlug (line 85) | environmentWideDatasetSlug = "__all__"

FILE: providers/honeycombio/query.go
  type QueryGenerator (line 10) | type QueryGenerator struct
    method InitResources (line 14) | func (g *QueryGenerator) InitResources() error {

FILE: providers/honeycombio/query_annotation.go
  type QueryAnnotationGenerator (line 10) | type QueryAnnotationGenerator struct
    method InitResources (line 14) | func (g *QueryAnnotationGenerator) InitResources() error {

FILE: providers/honeycombio/slo.go
  type SLOGenerator (line 10) | type SLOGenerator struct
    method InitResources (line 14) | func (g *SLOGenerator) InitResources() error {

FILE: providers/honeycombio/trigger.go
  type TriggerGenerator (line 10) | type TriggerGenerator struct
    method InitResources (line 14) | func (g *TriggerGenerator) InitResources() error {

FILE: providers/ibm/cis.go
  type CISGenerator (line 50) | type CISGenerator struct
    method loadInstances (line 54) | func (g CISGenerator) loadInstances(crn, name, resGrpID string) terraf...
    method loadDomains (line 68) | func (g CISGenerator) loadDomains(crn, domainID string, dependsOn []st...
    method loadDNSRecords (line 82) | func (g CISGenerator) loadDNSRecords(crn, domainID, dnsRecordID string...
    method loadFirewall (line 96) | func (g CISGenerator) loadFirewall(crn, domainID, fID, fType string, d...
    method loadDomainSettings (line 110) | func (g CISGenerator) loadDomainSettings(crn, dID string, dependsOn []...
    method loadGlobalBalancer (line 124) | func (g CISGenerator) loadGlobalBalancer(crn, dID, gID string, depends...
    method loadGlobalBalancerPool (line 143) | func (g CISGenerator) loadGlobalBalancerPool(crn, pID, pName string, d...
    method loadGlobalBalancerMonitor (line 157) | func (g CISGenerator) loadGlobalBalancerMonitor(crn, gblmID, port stri...
    method loadRateLimit (line 173) | func (g CISGenerator) loadRateLimit(crn, dID, rID string, dependsOn []...
    method loadEdgeFunctionAction (line 187) | func (g CISGenerator) loadEdgeFunctionAction(crn, dID, actionID string...
    method loadEdgeFunctionTrigger (line 201) | func (g CISGenerator) loadEdgeFunctionTrigger(crn, dID, triggerID stri...
    method loadWafRulePackage (line 215) | func (g CISGenerator) loadWafRulePackage(crn, dID, pkgID, actionMode, ...
    method loadWafGroups (line 232) | func (g CISGenerator) loadWafGroups(crn, dID, pkgID, grpID string, dep...
    method loadPageRule (line 246) | func (g CISGenerator) loadPageRule(crn, dID, ruleID string, dependsOn ...
    method loadCustomPage (line 260) | func (g CISGenerator) loadCustomPage(crn, dID, cpID, url string, depen...
    method loadRangeApp (line 276) | func (g CISGenerator) loadRangeApp(crn, dID, appID string, dependsOn [...
    method loadSSLCertificates (line 290) | func (g CISGenerator) loadSSLCertificates(crn, dID, cID string, depend...
    method loadCISRouting (line 304) | func (g CISGenerator) loadCISRouting(crn, dID string, dependsOn []stri...
    method loadCacheSettings (line 318) | func (g CISGenerator) loadCacheSettings(crn, dID string, dependsOn []s...
    method loadTLSSettings (line 332) | func (g CISGenerator) loadTLSSettings(crn, dID string, dependsOn []str...
    method loadFilters (line 346) | func (g CISGenerator) loadFilters(crn, dID, fID string, dependsOn []st...
    method InitResources (line 361) | func (g *CISGenerator)
Condensed preview — 870 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,035K chars).
[
  {
    "path": ".github/dependabot.yml",
    "chars": 576,
    "preview": "# To get started with Dependabot version updates, you'll need to specify which\n# package ecosystems to update and where "
  },
  {
    "path": ".github/workflows/linter.yml",
    "chars": 462,
    "preview": "name: linter\n\non:\n  push:\n    branches:\n    - master\n  pull_request:\n    branches:\n    - master\n\njobs:\n  linter:\n    nam"
  },
  {
    "path": ".github/workflows/release.yaml",
    "chars": 1218,
    "preview": "name: \"tagged-release\"\non:\n  workflow_dispatch:\n    inputs:\n      version:\n        description: Bump Version\n        req"
  },
  {
    "path": ".github/workflows/stale.yaml",
    "chars": 614,
    "preview": "name: 'Close stale issues and PRs'\non:\n  schedule:\n    - cron: '30 1 * * *'\n\njobs:\n  stale:\n    runs-on: ubuntu-latest\n "
  },
  {
    "path": ".github/workflows/test.yml",
    "chars": 488,
    "preview": "name: tests\n\non:\n  push:\n    branches:\n    - master\n  pull_request:\n    branches:\n    - master\n\njobs:\n  test:\n    strate"
  },
  {
    "path": ".gitignore",
    "chars": 124,
    "preview": ".idea\ngenerated\nterraformer*\ncmd/tmp\n.DS_Store\n.terraform\n.vscode\nterraform.tfstate\nterraform.tfstate.backup\ninit.tf\nven"
  },
  {
    "path": ".golangci.json",
    "chars": 804,
    "preview": "{\n  \"formatters\": {\n    \"enable\": [\n      \"gofmt\",\n      \"goimports\"\n    ],\n    \"exclusions\": {\n      \"generated\": \"lax\""
  },
  {
    "path": "AUTHORS",
    "chars": 302,
    "preview": "# This is the list of Terraformer authors for copyright purposes.\n#\n# This does not necessarily list everyone who has co"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 3210,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 1100,
    "preview": "# How to Contribute\n\nWe'd love to accept your patches and contributions to this project. There are\njust a few small guid"
  },
  {
    "path": "LICENSE",
    "chars": 11357,
    "preview": "\n                                 Apache License\n                           Version 2.0, January 2004\n                  "
  },
  {
    "path": "README.md",
    "chars": 18878,
    "preview": "# Terraformer\n\n[![tests](https://github.com/GoogleCloudPlatform/terraformer/actions/workflows/test.yml/badge.svg)](https"
  },
  {
    "path": "SECURITY.md",
    "chars": 283,
    "preview": "To report a security issue, please use http://g.co/vulnz. We use\nhttp://g.co/vulnz for our intake, and do coordination a"
  },
  {
    "path": "build/main.go",
    "chars": 2396,
    "preview": "package main\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\t\"os/exec\"\n\t\"strings\"\n)\n\nconst filePrefix = \"provider_cmd_\"\nconst fi"
  },
  {
    "path": "build/multi-build/main.go",
    "chars": 3600,
    "preview": "package main\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\t\"os/exec\"\n\t\"strings\"\n)\n\nconst filePrefix = \"provider_cmd_\"\nconst fi"
  },
  {
    "path": "cmd/import.go",
    "chars": 13980,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/plan.go",
    "chars": 3270,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_alicloud.go",
    "chars": 2019,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_auth0.go",
    "chars": 2054,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_aws.go",
    "chars": 4756,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_azure.go",
    "chars": 1626,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_azuread.go",
    "chars": 1652,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_azuredevops.go",
    "chars": 1574,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_cloudflare.go",
    "chars": 1559,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_commercetools.go",
    "chars": 2757,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_datadog.go",
    "chars": 2212,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_digitalocean.go",
    "chars": 1588,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_equinixmetal.go",
    "chars": 1582,
    "preview": "// Copyright 2021 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_fastly.go",
    "chars": 1513,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_github.go",
    "chars": 2188,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_gitlab.go",
    "chars": 2171,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_gmailfilter.go",
    "chars": 1829,
    "preview": "// Copyright 2020 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_google.go",
    "chars": 2356,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_grafana.go",
    "chars": 1489,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_heroku.go",
    "chars": 1733,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_honeycombio.go",
    "chars": 1690,
    "preview": "// Copyright 2022 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_ibm.go",
    "chars": 1911,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_ionoscloud.go",
    "chars": 1550,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_keycloak.go",
    "chars": 3925,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_kubernetes.go",
    "chars": 1630,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_launchdarkly.go",
    "chars": 1586,
    "preview": "// Copyright 2021 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_linode.go",
    "chars": 1515,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_logzio.go",
    "chars": 1859,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_mackerel.go",
    "chars": 1699,
    "preview": "// Copyright 2021 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_mikrotik.go",
    "chars": 1538,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_myrasec.go",
    "chars": 966,
    "preview": "package cmd\n\nimport (\n\tmyrasec_terraforming \"github.com/GoogleCloudPlatform/terraformer/providers/myrasec\"\n\t\"github.com/"
  },
  {
    "path": "cmd/provider_cmd_newrelic.go",
    "chars": 1827,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_ns1.go",
    "chars": 1468,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_octopusdeploy.go",
    "chars": 1295,
    "preview": "package cmd\n\nimport (\n\toctopusdeploy_terraforming \"github.com/GoogleCloudPlatform/terraformer/providers/octopusdeploy\"\n\n"
  },
  {
    "path": "cmd/provider_cmd_okta.go",
    "chars": 2005,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_opal.go",
    "chars": 1467,
    "preview": "// Copyright 2022 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_openstack.go",
    "chars": 1926,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_opsgenie.go",
    "chars": 1051,
    "preview": "package cmd\n\nimport (\n\t\"github.com/spf13/cobra\"\n\n\topsgenie_terraforming \"github.com/GoogleCloudPlatform/terraformer/prov"
  },
  {
    "path": "cmd/provider_cmd_pagerduty.go",
    "chars": 1641,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_panos.go",
    "chars": 2374,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_rabbitmq.go",
    "chars": 1830,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_tencentcloud.go",
    "chars": 1955,
    "preview": "// Copyright 2021 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_vault.go",
    "chars": 1679,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_vultr.go",
    "chars": 1500,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_xenorchestra.go",
    "chars": 1577,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/provider_cmd_yandex.go",
    "chars": 2068,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/root.go",
    "chars": 3711,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "cmd/version.go",
    "chars": 283,
    "preview": "package cmd\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/spf13/cobra\"\n)\n\nconst version = \"v0.8.30\"\n\nvar versionCmd = &cobra.Command{\n\t"
  },
  {
    "path": "docs/alicloud.md",
    "chars": 1320,
    "preview": "\n### Use with AliCloud\n\nYou can either edit your alicloud config directly, (usually it is `~/.aliyun/config.json`)\nor ru"
  },
  {
    "path": "docs/auth0.md",
    "chars": 553,
    "preview": "### Use with Auth0\n\nExample:\n\n```\n$ export AUTH0_DOMAIN=<DOMAIN>\n$ export AUTH0_CLIENT_ID=<CLIENT_ID>\n$ export AUTH0_CLI"
  },
  {
    "path": "docs/aws.md",
    "chars": 12880,
    "preview": "\n### Use with AWS\n\nExample:\n\n```\n terraformer import aws --resources=vpc,subnet --connect=true --regions=eu-west-1 --pro"
  },
  {
    "path": "docs/azure.md",
    "chars": 8777,
    "preview": "# Use with Azure\n\n## Authentication\n\n### Supported Methods\n\n- [Azure CLI](https://registry.terraform.io/providers/hashic"
  },
  {
    "path": "docs/azuread.md",
    "chars": 496,
    "preview": "### Use with Azure Active Directory\n\nExample:\n\n```\n$ export ARM_TENANT_ID=<TENANT_ID>\n$ export ARM_CLIENT_ID=<CLIENT_ID>"
  },
  {
    "path": "docs/azuredevops.md",
    "chars": 751,
    "preview": "# Use with Azure DevOps\n\nSupports access via [Personal Access Token](https://registry.terraform.io/providers/microsoft/a"
  },
  {
    "path": "docs/cloudflare.md",
    "chars": 889,
    "preview": "### Use with Cloudflare\n\nExample using a Cloudflare API Key and corresponding email:\n```\nexport CLOUDFLARE_API_KEY=[CLOU"
  },
  {
    "path": "docs/commercetools.md",
    "chars": 1381,
    "preview": "### Use with [Commercetools](https://commercetools.com/de/)\n\nThis provider use the [terraform-provider-commercetools](ht"
  },
  {
    "path": "docs/datadog.md",
    "chars": 5341,
    "preview": "# Use Terraformer with [Datadog](https://www.datadoghq.com/)\n\nThis provider uses the [terraform-provider-datadog](https:"
  },
  {
    "path": "docs/digitalocean.md",
    "chars": 1173,
    "preview": "### Use with DigitalOcean\n\nExample:\n\n```\nexport DIGITALOCEAN_TOKEN=[DIGITALOCEAN_TOKEN]\n./terraformer import digitalocea"
  },
  {
    "path": "docs/equinixmetal.md",
    "chars": 377,
    "preview": "### Use with Equinix Metal\n\nExample:\n\n```\nexport METAL_AUTH_TOKEN=[METAL_AUTH_TOKEN]\nexport PACKET_PROJECT_ID=[PROJECT_I"
  },
  {
    "path": "docs/fastly.md",
    "chars": 504,
    "preview": "### Use with Fastly\n\nExample:\n\n```\nexport FASTLY_API_KEY=[FASTLY_API_KEY]\nexport FASTLY_CUSTOMER_ID=[FASTLY_CUSTOMER_ID]"
  },
  {
    "path": "docs/gcp.md",
    "chars": 5390,
    "preview": "### Use with GCP\n\nIn order to access the information from your Google Project, you need to provide authentication creden"
  },
  {
    "path": "docs/github.md",
    "chars": 1313,
    "preview": "### Use with GitHub\n\nExample:\n\n```\n ./terraformer import github --owner=YOUR_ORGANIZATION --resources=repositories --tok"
  },
  {
    "path": "docs/gitlab.md",
    "chars": 541,
    "preview": "### Use with GitLab\n\nExample:\n\n```shell\n./terraformer import gitlab --group=GROUP_TO_IMPORT --resources=projects --token"
  },
  {
    "path": "docs/gmailfilter.md",
    "chars": 914,
    "preview": "### Use with GmailFilter\n\nSupport [Using Service Accounts](https://github.com/yamamoto-febc/terraform-provider-gmailfilt"
  },
  {
    "path": "docs/grafana.md",
    "chars": 1594,
    "preview": "### Use with [Grafana](https://grafana.com)\n\nThis provider uses the [terraform-provider-grafana](https://registry.terraf"
  },
  {
    "path": "docs/heroku.md",
    "chars": 2637,
    "preview": "### Use with Heroku\n\nThis utilizes [terraform-provider-heroku](https://registry.terraform.io/providers/heroku/heroku/lat"
  },
  {
    "path": "docs/honeycombio.md",
    "chars": 1089,
    "preview": "### Use with Honeycomb.io\n\n#### Example\n\n```sh\nexport HONEYCOMB_API_KEY=MYAPIKEY\n./terraformer import honeycombio --reso"
  },
  {
    "path": "docs/ibmcloud.md",
    "chars": 5518,
    "preview": "### Use with IBM Cloud\n\nIf you want to run Terraformer with the IBM Cloud provider plugin on your system, complete the f"
  },
  {
    "path": "docs/ionoscloud.md",
    "chars": 5220,
    "preview": "# Use with IONOS Cloud\n\n## Authentication\n\nProper credential must be configured, before it can be used.\n\nYou can set the"
  },
  {
    "path": "docs/keycloak.md",
    "chars": 2150,
    "preview": "### Use with Keycloak\n\nExample:\n\n```\n export KEYCLOAK_URL=https://foo.bar.localdomain\n export KEYCLOAK_BASE_PATH=/auth #"
  },
  {
    "path": "docs/kubernetes.md",
    "chars": 1846,
    "preview": "### Use with Kubernetes\n\nExample:\n\n```\n terraformer import kubernetes --resources=deployments,services,storageclasses\n t"
  },
  {
    "path": "docs/launchdarkly.md",
    "chars": 238,
    "preview": "### Use with Launchdarkly\n\nExample:\n\n```\nexport LAUNCHDARKLY_ACCESS_TOKEN=[LAUNCHDARKLY_ACCESS_TOKEN]\n./terraformer impo"
  },
  {
    "path": "docs/linode.md",
    "chars": 582,
    "preview": "### Use with Linode\n\nExample:\n\n```\nexport LINODE_TOKEN=[LINODE_TOKEN]\n./terraformer import linode -r instance\n```\n\nList "
  },
  {
    "path": "docs/logz.md",
    "chars": 361,
    "preview": "### Use with Logz.io\n\nExample:\n\n```\n LOGZIO_API_TOKEN=foobar LOGZIO_BASE_URL=https://api-eu.logz.io ./terraformer import"
  },
  {
    "path": "docs/mackerel.md",
    "chars": 1139,
    "preview": "### Use with Mackerel\n\nExample:\n\n```bash\n ./terraformer import mackerel --resources=service --api-key=YOUR_MACKEREL_API_"
  },
  {
    "path": "docs/mikrotik.md",
    "chars": 810,
    "preview": "### Use with [Mikrotik](https://wiki.mikrotik.com/wiki/Manual:TOC)\n\nThis provider uses the [terraform-provider-mikrotik]"
  },
  {
    "path": "docs/myrasec.md",
    "chars": 664,
    "preview": "### Use with Myra Security\n\nExample using a Myra Security API Key and corresponding Token:\n\n```\nexport MYRASEC_API_SECRE"
  },
  {
    "path": "docs/ns1.md",
    "chars": 258,
    "preview": "### Use with NS1\n\nExample:\n\n```\n$ export NS1_APIKEY=[NS1_APIKEY]\n$ terraformer import ns1 -r zone,monitoringjob,team\n```"
  },
  {
    "path": "docs/octopus.md",
    "chars": 698,
    "preview": "### Use with OctopusDeploy\n\nExample:\n\n```\nexport OCTOPUS_CLI_SERVER=http://localhost:8081/\nexport OCTOPUS_CLI_API_KEY=AP"
  },
  {
    "path": "docs/okta.md",
    "chars": 1572,
    "preview": "### Use with Okta\n\nExample:\n\n```\n$ export OKTA_ORG_NAME=<ORG_NAME>\n$ export OKTA_BASE_URL=<BASE_URL>\n$ export OKTA_API_T"
  },
  {
    "path": "docs/opal.md",
    "chars": 2089,
    "preview": "# Use terraformer with [Opal](https://opal.dev)\n\n##  Usage\n### 1. Installation\nFirst you will need to install terraforme"
  },
  {
    "path": "docs/openstack.md",
    "chars": 461,
    "preview": "### Use with OpenStack\n\nExample:\n\n```\n terraformer import openstack --resources=compute,networking --regions=RegionOne\n`"
  },
  {
    "path": "docs/opsgenie.md",
    "chars": 250,
    "preview": "### Use with Opsgenie\n\nExample:\n\n```\n terraformer import opsgenie --resources=team,user --api-key=YOUR_API_KEY // or OPS"
  },
  {
    "path": "docs/pagerduty.md",
    "chars": 668,
    "preview": "### Use with PagerDuty\n\nExample:\n\n```\n./terraformer import pagerduty -r team,schedule,user  -t YOUR_PAGERDUTY_TOKEN // o"
  },
  {
    "path": "docs/panos.md",
    "chars": 5912,
    "preview": "### Use with PAN-OS\n\nExample:\n\n```\n export PANOS_HOSTNAME=192.168.1.1\n export PANOS_USERNAME=[PANOS_USERNAME]\n export PA"
  },
  {
    "path": "docs/rabbitmq.md",
    "chars": 837,
    "preview": "### Use with RabbitMQ\n\nExample:\n\n```\n export RABBITMQ_SERVER_URL=http://foo.bar.localdomain:15672\n export RABBITMQ_USERN"
  },
  {
    "path": "docs/relic.md",
    "chars": 660,
    "preview": "### Use with New Relic\n\nExample:\n\n```\n./terraformer import newrelic -r alert,infra,synthetics --api-key=NRAK-XXXXXXXX --"
  },
  {
    "path": "docs/tencentcloud.md",
    "chars": 1342,
    "preview": "### Use with TencentCloud\n\nExample:\n\n```\n$ export TENCENTCLOUD_SECRET_ID=<SECRET_ID>\n$ export TENCENTCLOUD_SECRET_KEY=<S"
  },
  {
    "path": "docs/vault.md",
    "chars": 2603,
    "preview": "### Use with Vault\n\nExample:\n\n```\n ./terraformer import vault --resources=aws_secret_backend_role --token=YOUR_VAULT_TOK"
  },
  {
    "path": "docs/vultr.md",
    "chars": 666,
    "preview": "### Use with Vultr\n\nExample:\n\n```\nexport VULTR_API_KEY=[VULTR_API_KEY]\n./terraformer import vultr -r server\n```\n\nList of"
  },
  {
    "path": "docs/xen.md",
    "chars": 732,
    "preview": "### Use with [Xen Orchestra](https://xen-orchestra.com/)\n\nThis provider uses the [terraform-provider-xenorchestra](https"
  },
  {
    "path": "docs/yandex.md",
    "chars": 463,
    "preview": "### Use with Yandex Cloud\n\nExample:\n\n```\nexport YC_TOKEN=[YANDEX_CLOUD_OAUTH_OR_IAM_TOKEN]\n./terraformer import yandex -"
  },
  {
    "path": "go.mod",
    "chars": 24113,
    "preview": "module github.com/GoogleCloudPlatform/terraformer\n\ngo 1.24.0\nrequire (\n\tcloud.google.com/go v0.116.0 // indirect\n\tcloud."
  },
  {
    "path": "go.sum",
    "chars": 261533,
    "preview": "bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8=\ncel.dev/expr v0"
  },
  {
    "path": "main.go",
    "chars": 1125,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/alicloud/alicloud_provider.go",
    "chars": 3720,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/alicloud/alicloud_service.go",
    "chars": 4316,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/alicloud/connectivity/client.go",
    "chars": 11664,
    "preview": "package connectivity\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"os\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"gi"
  },
  {
    "path": "providers/alicloud/connectivity/config.go",
    "chars": 6157,
    "preview": "package connectivity\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\t\"strings\"\n\n\t\"github.com/aliyun/alibaba-cloud-"
  },
  {
    "path": "providers/alicloud/connectivity/endpoint.go",
    "chars": 3067,
    "preview": "package connectivity\n\nimport (\n\t\"encoding/xml\"\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n)\n\n// Load endpoints from endpoints.xml or enviro"
  },
  {
    "path": "providers/alicloud/connectivity/regions.go",
    "chars": 5594,
    "preview": "package connectivity\n\n// Region represents ECS region\ntype Region string\n\n// Constants of region definition\nconst (\n\tHan"
  },
  {
    "path": "providers/alicloud/dns.go",
    "chars": 4154,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/alicloud/ecs.go",
    "chars": 2950,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/alicloud/key_pair.go",
    "chars": 2241,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/alicloud/nat_gateway.go",
    "chars": 2364,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/alicloud/pvtz.go",
    "chars": 5083,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/alicloud/ram.go",
    "chars": 4274,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/alicloud/rds.go",
    "chars": 2623,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/alicloud/sg.go",
    "chars": 5318,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/alicloud/slb.go",
    "chars": 6376,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/alicloud/vpc.go",
    "chars": 2173,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/alicloud/vswitch.go",
    "chars": 2274,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/auth0/action.go",
    "chars": 1573,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/auth0/auth0_provider.go",
    "chars": 3463,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/auth0/auth0_service.go",
    "chars": 1166,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/auth0/branding.go",
    "chars": 1446,
    "preview": "// Copyright 2022 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/auth0/client.go",
    "chars": 1579,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/auth0/client_grant.go",
    "chars": 1663,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/auth0/custom_domain.go",
    "chars": 1497,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/auth0/email.go",
    "chars": 1344,
    "preview": "// Copyright 2022 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/auth0/hook.go",
    "chars": 1543,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/auth0/log_stream.go",
    "chars": 1456,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/auth0/prompt.go",
    "chars": 1422,
    "preview": "// Copyright 2022 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/auth0/resource_server.go",
    "chars": 1694,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/auth0/role.go",
    "chars": 1543,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/auth0/rule.go",
    "chars": 1543,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/auth0/rule_config.go",
    "chars": 1462,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/auth0/tenant.go",
    "chars": 1422,
    "preview": "// Copyright 2022 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/auth0/trigger_binding.go",
    "chars": 1973,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/auth0/user.go",
    "chars": 1529,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/accessanalyzer.go",
    "chars": 1567,
    "preview": "// Copyright 2020 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/acm.go",
    "chars": 2173,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/alb.go",
    "chars": 7040,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/api_gateway.go",
    "chars": 12096,
    "preview": "// Copyright 2020 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/api_gatewayv2.go",
    "chars": 9070,
    "preview": "// Copyright 2020 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/appsync.go",
    "chars": 848,
    "preview": "package aws\n\nimport (\n\t\"context\"\n\n\t\"github.com/GoogleCloudPlatform/terraformer/terraformutils\"\n\t\"github.com/aws/aws-sdk-"
  },
  {
    "path": "providers/aws/autoscaling.go",
    "chars": 5663,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/aws_facade.go",
    "chars": 1978,
    "preview": "package aws\n\nimport (\n\t\"strings\"\n\n\t\"github.com/GoogleCloudPlatform/terraformer/terraformutils\"\n\t\"github.com/GoogleCloudP"
  },
  {
    "path": "providers/aws/aws_provider.go",
    "chars": 13106,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/aws_service.go",
    "chars": 2949,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/batch.go",
    "chars": 2919,
    "preview": "package aws\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/GoogleCloudPlatform/terraformer/terraformutils\"\n\n\t\"github.com/aws/"
  },
  {
    "path": "providers/aws/budgets.go",
    "chars": 1752,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/cloud9.go",
    "chars": 1678,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/cloud_front.go",
    "chars": 3787,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/cloudformation.go",
    "chars": 3075,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/cloudhsm.go",
    "chars": 1832,
    "preview": "// Copyright 2021 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/cloudtrail.go",
    "chars": 1655,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/cloudwatch.go",
    "chars": 4101,
    "preview": "// Copyright 2020 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/codebuild.go",
    "chars": 1702,
    "preview": "// Copyright 2020 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/codecommit.go",
    "chars": 2652,
    "preview": "// Copyright 2020 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/codedeploy.go",
    "chars": 1529,
    "preview": "// Copyright 2020 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/codepipeline.go",
    "chars": 2271,
    "preview": "// Copyright 2020 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/cognito.go",
    "chars": 4523,
    "preview": "package aws\n\nimport (\n\t\"context\"\n\n\t\"github.com/GoogleCloudPlatform/terraformer/terraformutils\"\n\t\"github.com/aws/aws-sdk-"
  },
  {
    "path": "providers/aws/config.go",
    "chars": 3482,
    "preview": "// Copyright 2020 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/customer_gateway.go",
    "chars": 1807,
    "preview": "// Copyright 2020 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/datapipeline.go",
    "chars": 1606,
    "preview": "// Copyright 2020 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/devicefarm.go",
    "chars": 1575,
    "preview": "// Copyright 2020 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/docdb.go",
    "chars": 3573,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/dx.go",
    "chars": 3504,
    "preview": "// Copyright 2020 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/dynamodb.go",
    "chars": 1694,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/ebs.go",
    "chars": 3477,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/ec2.go",
    "chars": 3198,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/ecr.go",
    "chars": 2884,
    "preview": "// Copyright 2020 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/ecrpublic.go",
    "chars": 1597,
    "preview": "// Copyright 2021 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/ecs.go",
    "chars": 4339,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/efs.go",
    "chars": 3728,
    "preview": "// Copyright 2020 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/eip.go",
    "chars": 1698,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/eks.go",
    "chars": 2855,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/elastic_beanstalk.go",
    "chars": 2176,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/elasticache.go",
    "chars": 6969,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/elb.go",
    "chars": 1847,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/emr.go",
    "chars": 2154,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/eni.go",
    "chars": 2169,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/es.go",
    "chars": 1963,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/firehose.go",
    "chars": 2433,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/glue.go",
    "chars": 5121,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/iam.go",
    "chars": 11698,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/identitystore.go",
    "chars": 5129,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/igw.go",
    "chars": 1933,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/iot.go",
    "chars": 3033,
    "preview": "// Copyright 2020 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/kinesis.go",
    "chars": 1933,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/kms.go",
    "chars": 3465,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/lambda.go",
    "chars": 5870,
    "preview": "// Copyright 2019 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/logs.go",
    "chars": 2374,
    "preview": "// Copyright 2018 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  },
  {
    "path": "providers/aws/media_package.go",
    "chars": 1551,
    "preview": "// Copyright 2020 The Terraformer Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you "
  }
]

// ... and 670 more files (download for full content)

About this extraction

This page contains the full source code of the GoogleCloudPlatform/terraformer GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 870 files (2.6 MB), approximately 729.3k tokens, and a symbol index with 3496 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!