diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 981a9153..a43c835b 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -43,7 +43,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@16df4fbc19aea13d921737861d6c622bf3cefe23 # codeql-bundle-v2.23.0 + uses: github/codeql-action/init@17783bfb99b07f70fae080b654aed0c514057477 # codeql-bundle-v2.23.3 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -57,7 +57,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@16df4fbc19aea13d921737861d6c622bf3cefe23 # codeql-bundle-v2.23.0 + uses: github/codeql-action/autobuild@17783bfb99b07f70fae080b654aed0c514057477 # codeql-bundle-v2.23.3 # â„šī¸ Command-line programs to run using the OS shell. # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun @@ -70,4 +70,4 @@ jobs: # ./location_of_script_within_repo/buildscript.sh - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@16df4fbc19aea13d921737861d6c622bf3cefe23 # codeql-bundle-v2.23.0 + uses: github/codeql-action/analyze@17783bfb99b07f70fae080b654aed0c514057477 # codeql-bundle-v2.23.3 diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index d1f504c6..f1328622 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -12,7 +12,7 @@ jobs: with: go-version: 1.24.x - name: Restore cache - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-mod-${{ hashFiles('**/go.sum') }} @@ -37,7 +37,7 @@ jobs: with: go-version: ${{ matrix.go-version }} - name: Restore cache - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-mod-${{ hashFiles('**/go.sum') }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a72059c5..c61d02ba 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -50,7 +50,7 @@ jobs: password: ${{ secrets.DOCKERHUB_PASSWORD }} tags: "latest,${{ github.ref_name }}" - name: Update Docker Hub README - uses: peter-evans/dockerhub-description@432a30c9e07499fd01da9f8a49f0faf9e0ca5b77 # v4.0.2 + uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} @@ -64,7 +64,7 @@ jobs: - goreleaser steps: - name: Repository Dispatch - uses: peter-evans/repository-dispatch@ff45666b9427631e3450c54a1bcbee4d9ff4d7c0 # v3.0.0 + uses: peter-evans/repository-dispatch@5fc4efd1a4797ddb68ffd0714a238564e4cc0e6f # v4.0.0 with: token: ${{ secrets.PAT }} repository: jameswoolfenden/scoop diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index ff7900ec..87ceda51 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -13,7 +13,7 @@ jobs: pull-requests: write runs-on: ubuntu-latest steps: - - uses: actions/stale@3a9db7e6a41a89f618792c92c0e97cc736e1b13f # v10.0.0 + - uses: actions/stale@5f858e3efba33a5ca4407a664cc011ad407f2008 # v10.1.0 with: stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.' days-before-stale: 30 diff --git a/go.mod b/go.mod index 37311ca9..e4e7e273 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,6 @@ require ( golang.org/x/oauth2 v0.30.0 google.golang.org/api v0.240.0 gopkg.in/ini.v1 v1.67.0 - ) require ( diff --git a/src/aws_datasource.go b/src/aws_datasource.go index 5653bd31..f4085bb1 100644 --- a/src/aws_datasource.go +++ b/src/aws_datasource.go @@ -608,6 +608,36 @@ var tFLookupDataAWS = map[string]interface{}{ "aws_dynamodb_tables": dataAwsDynamodbTables, "aws_ecr_images": dataAwsEcrImages, "aws_s3_access_point": dataAwsS3AccessPoint, + "aws_billing_views": dataAwsBillingViews, + "aws_media_convert_queue": dataAwsMediaConvertQueue, + "aws_memorydb_acl": dataAwsMemorydbAcl, + "aws_memorydb_cluster": dataAwsMemorydbCluster, + "aws_memorydb_parameter_group": dataAwsMemorydbParameterGroup, + "aws_memorydb_snapshot": dataAwsMemorydbSnapshot, + "aws_memorydb_subnet_group": dataAwsMemorydbSubnetGroup, + "aws_memorydb_user": dataAwsMemorydbUser, + "aws_securityhub_standards_control_associations": dataAwsSecurityhubStandardsControlAssociations, + "aws_workspaces_workspace": dataAwsWorkspacesWorkspace, + "aws_appconfig_application": dataAwsAppconfigApplication, + "aws_odb_cloud_autonomous_vm_cluster": dataAwsOdbCloudAutonomousVmCluster, + "aws_odb_cloud_autonomous_vm_clusters": dataAwsOdbCloudAutonomousVmClusters, + "aws_odb_cloud_exadata_infrastructure": dataAwsOdbCloudExadataInfrastructure, + "aws_odb_cloud_exadata_infrastructures": dataAwsOdbCloudExadataInfrastructures, + "aws_odb_cloud_vm_cluster": dataAwsOdbCloudVmCluster, + "aws_odb_cloud_vm_clusters": dataAwsOdbCloudVmClusters, + "aws_odb_db_node": dataAwsOdbDbNode, + "aws_odb_db_nodes": dataAwsOdbDbNodes, + "aws_odb_db_server": dataAwsOdbServer, + "aws_odb_db_servers": dataAwsOdbServers, + "aws_odb_db_system_shapes": dataAwsOdbDbSystemShapes, + "aws_odb_gi_versions": dataAwsOdbGiVersions, + "aws_odb_network": dataAwsOdbNetwork, + "aws_odb_network_peering_connection": dataAwsOdbNetworkPeeringConnection, + "aws_odb_network_peering_connections": dataAwsOdbNetworkPeeringConnections, + "aws_odb_networks": dataAwsOdbNetworks, + "aws_ecrpublic_images": dataAwsEcrPublicImages, + "aws_rds_global_cluster": dataAwsRdsGlobalCluster, + "aws_vpn_connection": dataAwsVpnConnection, } // GetAWSDataPermissions gets permissions required for datasource's. diff --git a/src/coverage/aws.md b/src/coverage/aws.md index 8975f93a..91a8c024 100644 --- a/src/coverage/aws.md +++ b/src/coverage/aws.md @@ -2,27 +2,48 @@ | Terraform | Coverage % | Resources | Total Resources | |------------|------------|-----------|-----------------| -| Resources | 97.46 | 1498 | 1537 | -| Datasource | 97.55 | 598 | 613 | +| Resources | 95.96 | 1498 | 1561 | +| Datasource | 100.00 | 628 | 628 | ```shell ./resource.ps1 aws_appsync_api ./resource.ps1 aws_appsync_channel_namespace ./resource.ps1 aws_bedrockagent_flow +./resource.ps1 aws_bedrockagentcore_agent_runtime +./resource.ps1 aws_bedrockagentcore_agent_runtime_endpoint +./resource.ps1 aws_bedrockagentcore_api_key_credential_provider +./resource.ps1 aws_bedrockagentcore_browser +./resource.ps1 aws_bedrockagentcore_code_interpreter +./resource.ps1 aws_bedrockagentcore_gateway +./resource.ps1 aws_bedrockagentcore_gateway_target +./resource.ps1 aws_bedrockagentcore_memory +./resource.ps1 aws_bedrockagentcore_memory_strategy +./resource.ps1 aws_bedrockagentcore_oauth2_credential_provider +./resource.ps1 aws_bedrockagentcore_token_vault_cmk +./resource.ps1 aws_bedrockagentcore_workload_identity ./resource.ps1 aws_cognito_log_delivery_configuration ./resource.ps1 aws_cognito_managed_login_branding ./resource.ps1 aws_connect_phone_number_contact_flow_association ./resource.ps1 aws_controltower_baseline +./resource.ps1 aws_ec2_allowed_images_settings +./resource.ps1 aws_fis_target_account_configuration ./resource.ps1 aws_fsx_s3_access_point_attachment +./resource.ps1 aws_invoicing_invoice_unit +./resource.ps1 aws_lakeformation_identity_center_configuration +./resource.ps1 aws_lakeformation_lf_tag_expression ./resource.ps1 aws_nat_gateway_eip_association ./resource.ps1 aws_networkfirewall_firewall_transit_gateway_attachment_accepter ./resource.ps1 aws_networkfirewall_vpc_endpoint_association +./resource.ps1 aws_networkflowmonitor_monitor +./resource.ps1 aws_networkflowmonitor_scope +./resource.ps1 aws_observabilityadmin_centralization_rule_for_organization ./resource.ps1 aws_odb_cloud_autonomous_vm_cluster ./resource.ps1 aws_odb_cloud_exadata_infrastructure ./resource.ps1 aws_odb_cloud_vm_cluster ./resource.ps1 aws_odb_network ./resource.ps1 aws_odb_network_peering_connection ./resource.ps1 aws_prometheus_query_logging_configuration +./resource.ps1 aws_prometheus_resource_policy ./resource.ps1 aws_quicksight_custom_permissions ./resource.ps1 aws_quicksight_ip_restriction ./resource.ps1 aws_quicksight_key_registration @@ -30,6 +51,9 @@ ./resource.ps1 aws_quicksight_user_custom_permission ./resource.ps1 aws_s3_bucket_metadata_configuration ./resource.ps1 aws_timestreaminfluxdb_db_cluster +./resource.ps1 aws_transfer_host_key +./resource.ps1 aws_transfer_web_app +./resource.ps1 aws_transfer_web_app_customization ./resource.ps1 aws_vpc_route_server_endpoint ./resource.ps1 aws_vpc_route_server_peer ./resource.ps1 aws_wafv2_web_acl_rule_group_association @@ -45,19 +69,4 @@ ./resource.ps1 aws_workspacesweb_trust_store_association ./resource.ps1 aws_workspacesweb_user_access_logging_settings_association ./resource.ps1 aws_workspacesweb_user_settings_association -./resource.ps1 aws_billing_views -type data -./resource.ps1 aws_media_convert_queue -type data -./resource.ps1 aws_memorydb_acl -type data -./resource.ps1 aws_memorydb_cluster -type data -./resource.ps1 aws_memorydb_parameter_group -type data -./resource.ps1 aws_memorydb_snapshot -type data -./resource.ps1 aws_memorydb_subnet_group -type data -./resource.ps1 aws_memorydb_user -type data -./resource.ps1 aws_odb_cloud_autonomous_vm_cluster -type data -./resource.ps1 aws_odb_cloud_exadata_infrastructure -type data -./resource.ps1 aws_odb_cloud_vm_cluster -type data -./resource.ps1 aws_odb_network -type data -./resource.ps1 aws_odb_network_peering_connection -type data -./resource.ps1 aws_securityhub_standards_control_associations -type data -./resource.ps1 aws_workspaces_workspace -type data ``` diff --git a/src/coverage/azure.md b/src/coverage/azure.md index a95689e2..c991e42e 100755 --- a/src/coverage/azure.md +++ b/src/coverage/azure.md @@ -2,8 +2,8 @@ | Terraform | Coverage % | Resources | Total Resources | |------------|------------|-----------|-----------------| -| Resources | 4.44 | 49 | 1104 | -| Datasource | 31.04 | 122 | 393 | +| Resources | 4.39 | 49 | 1115 | +| Datasource | 30.65 | 122 | 398 | ```shell ./resource.ps1 azurerm_aadb2c_directory @@ -65,6 +65,10 @@ ./resource.ps1 azurerm_api_management_tag ./resource.ps1 azurerm_api_management_user ./resource.ps1 azurerm_api_management_workspace +./resource.ps1 azurerm_api_management_workspace_api_version_set +./resource.ps1 azurerm_api_management_workspace_certificate +./resource.ps1 azurerm_api_management_workspace_policy +./resource.ps1 azurerm_api_management_workspace_policy_fragment ./resource.ps1 azurerm_app_configuration_feature ./resource.ps1 azurerm_app_configuration_key ./resource.ps1 azurerm_app_service_active_slot @@ -549,6 +553,8 @@ ./resource.ps1 azurerm_managed_application_definition ./resource.ps1 azurerm_managed_disk_sas_token ./resource.ps1 azurerm_managed_lustre_file_system +./resource.ps1 azurerm_managed_redis +./resource.ps1 azurerm_managed_redis_geo_replication ./resource.ps1 azurerm_management_group_policy_assignment ./resource.ps1 azurerm_management_group_policy_exemption ./resource.ps1 azurerm_management_group_policy_remediation @@ -574,6 +580,7 @@ ./resource.ps1 azurerm_mobile_network_site ./resource.ps1 azurerm_mobile_network_slice ./resource.ps1 azurerm_mongo_cluster +./resource.ps1 azurerm_mongo_cluster_firewall_rule ./resource.ps1 azurerm_monitor_aad_diagnostic_setting ./resource.ps1 azurerm_monitor_action_group ./resource.ps1 azurerm_monitor_activity_log_alert @@ -663,6 +670,7 @@ ./resource.ps1 azurerm_network_manager_management_group_connection ./resource.ps1 azurerm_network_manager_network_group ./resource.ps1 azurerm_network_manager_routing_configuration +./resource.ps1 azurerm_network_manager_routing_rule ./resource.ps1 azurerm_network_manager_routing_rule_collection ./resource.ps1 azurerm_network_manager_scope_connection ./resource.ps1 azurerm_network_manager_security_admin_configuration @@ -682,8 +690,12 @@ ./resource.ps1 azurerm_notification_hub_namespace ./resource.ps1 azurerm_oracle_autonomous_database ./resource.ps1 azurerm_oracle_autonomous_database_backup +./resource.ps1 azurerm_oracle_autonomous_database_clone_from_backup +./resource.ps1 azurerm_oracle_autonomous_database_clone_from_database ./resource.ps1 azurerm_oracle_cloud_vm_cluster ./resource.ps1 azurerm_oracle_exadata_infrastructure +./resource.ps1 azurerm_oracle_exascale_database_storage_vault +./resource.ps1 azurerm_oracle_resource_anchor ./resource.ps1 azurerm_orbital_contact ./resource.ps1 azurerm_orbital_contact_profile ./resource.ps1 azurerm_orbital_spacecraft @@ -857,7 +869,6 @@ ./resource.ps1 azurerm_site_recovery_vmware_replication_policy_association ./resource.ps1 azurerm_snapshot ./resource.ps1 azurerm_source_control_token -./resource.ps1 azurerm_spatial_anchors_account ./resource.ps1 azurerm_spring_cloud_accelerator ./resource.ps1 azurerm_spring_cloud_active_deployment ./resource.ps1 azurerm_spring_cloud_api_portal @@ -1172,6 +1183,7 @@ ./resource.ps1 azurerm_firewall_policy -type data ./resource.ps1 azurerm_function_app -type data ./resource.ps1 azurerm_function_app_host_keys -type data +./resource.ps1 azurerm_graph_services_account -type data ./resource.ps1 azurerm_hdinsight_cluster -type data ./resource.ps1 azurerm_healthcare_dicom_service -type data ./resource.ps1 azurerm_healthcare_fhir_service -type data @@ -1214,6 +1226,7 @@ ./resource.ps1 azurerm_managed_application_definition -type data ./resource.ps1 azurerm_managed_disk -type data ./resource.ps1 azurerm_managed_disks -type data +./resource.ps1 azurerm_managed_redis -type data ./resource.ps1 azurerm_management_group -type data ./resource.ps1 azurerm_management_group_template_deployment -type data ./resource.ps1 azurerm_maps_account -type data @@ -1274,12 +1287,16 @@ ./resource.ps1 azurerm_oracle_autonomous_database -type data ./resource.ps1 azurerm_oracle_autonomous_database_backup -type data ./resource.ps1 azurerm_oracle_autonomous_database_backups -type data +./resource.ps1 azurerm_oracle_autonomous_database_clone_from_backup -type data +./resource.ps1 azurerm_oracle_autonomous_database_clone_from_database -type data ./resource.ps1 azurerm_oracle_cloud_vm_cluster -type data ./resource.ps1 azurerm_oracle_db_nodes -type data ./resource.ps1 azurerm_oracle_db_servers -type data ./resource.ps1 azurerm_oracle_db_system_shapes -type data ./resource.ps1 azurerm_oracle_exadata_infrastructure -type data +./resource.ps1 azurerm_oracle_exascale_database_storage_vault -type data ./resource.ps1 azurerm_oracle_gi_versions -type data +./resource.ps1 azurerm_oracle_resource_anchor -type data ./resource.ps1 azurerm_orchestrated_virtual_machine_scale_set -type data ./resource.ps1 azurerm_palo_alto_local_rulestack -type data ./resource.ps1 azurerm_platform_image -type data @@ -1320,7 +1337,6 @@ ./resource.ps1 azurerm_servicebus_namespace_disaster_recovery_config -type data ./resource.ps1 azurerm_servicebus_topic_authorization_rule -type data ./resource.ps1 azurerm_site_recovery_replication_recovery_plan -type data -./resource.ps1 azurerm_spatial_anchors_account -type data ./resource.ps1 azurerm_stack_hci_storage_path -type data ./resource.ps1 azurerm_static_web_app -type data ./resource.ps1 azurerm_storage_queue -type data diff --git a/src/coverage/google.md b/src/coverage/google.md index 870123e2..2275cfd5 100755 --- a/src/coverage/google.md +++ b/src/coverage/google.md @@ -2,8 +2,8 @@ | Terraform | Coverage % | Resources | Total Resources | |------------|------------|-----------|-----------------| -| Resources | 62.12 | 756 | 1217 | -| Datasource | 99.24 | 393 | 396 | +| Resources | 62.39 | 783 | 1255 | +| Datasource | 99.01 | 399 | 403 | ```shell ./resource.ps1 google_access_context_manager_access_level_condition @@ -18,16 +18,19 @@ ./resource.ps1 google_active_directory_peering ./resource.ps1 google_apigee_addons_config ./resource.ps1 google_apigee_api +./resource.ps1 google_apigee_api_deployment ./resource.ps1 google_apigee_api_product ./resource.ps1 google_apigee_app_group ./resource.ps1 google_apigee_control_plane_access ./resource.ps1 google_apigee_developer +./resource.ps1 google_apigee_developer_app ./resource.ps1 google_apigee_dns_zone ./resource.ps1 google_apigee_env_keystore ./resource.ps1 google_apigee_envgroup ./resource.ps1 google_apigee_envgroup_attachment ./resource.ps1 google_apigee_environment ./resource.ps1 google_apigee_environment_addons_config +./resource.ps1 google_apigee_environment_api_revision_deployment ./resource.ps1 google_apigee_environment_keyvaluemaps ./resource.ps1 google_apigee_environment_keyvaluemaps_entries ./resource.ps1 google_apigee_instance @@ -66,6 +69,13 @@ ./resource.ps1 google_certificate_manager_certificate_map ./resource.ps1 google_certificate_manager_certificate_map_entry ./resource.ps1 google_certificate_manager_trust_config +./resource.ps1 google_ces_agent +./resource.ps1 google_ces_app +./resource.ps1 google_ces_deployment +./resource.ps1 google_ces_example +./resource.ps1 google_ces_guardrail +./resource.ps1 google_ces_tool +./resource.ps1 google_ces_toolset ./resource.ps1 google_cloud_asset_folder_feed ./resource.ps1 google_cloud_asset_organization_feed ./resource.ps1 google_cloud_asset_project_feed @@ -74,6 +84,9 @@ ./resource.ps1 google_cloud_ids_endpoint ./resource.ps1 google_cloud_quotas_quota_adjuster_settings ./resource.ps1 google_cloud_quotas_quota_preference +./resource.ps1 google_cloud_security_compliance_cloud_control +./resource.ps1 google_cloud_security_compliance_framework +./resource.ps1 google_cloud_security_compliance_framework_deployment ./resource.ps1 google_cloud_tasks_queue ./resource.ps1 google_cloudbuild_bitbucket_server_config ./resource.ps1 google_cloudbuild_worker_pool @@ -146,6 +159,7 @@ ./resource.ps1 google_compute_region_commitment ./resource.ps1 google_compute_region_disk ./resource.ps1 google_compute_region_disk_resource_policy_attachment +./resource.ps1 google_compute_region_health_aggregation_policy ./resource.ps1 google_compute_region_instance_group_manager ./resource.ps1 google_compute_region_instance_template ./resource.ps1 google_compute_region_network_endpoint @@ -205,6 +219,7 @@ ./resource.ps1 google_database_migration_service_migration_job ./resource.ps1 google_database_migration_service_private_connection ./resource.ps1 google_dataflow_flex_template_job +./resource.ps1 google_dataplex_entry_link ./resource.ps1 google_dataproc_gdc_application_environment ./resource.ps1 google_dataproc_gdc_service_instance ./resource.ps1 google_dataproc_gdc_spark_application @@ -215,14 +230,19 @@ ./resource.ps1 google_datastream_stream ./resource.ps1 google_developer_connect_insights_config ./resource.ps1 google_discovery_engine_acl_config +./resource.ps1 google_discovery_engine_assistant ./resource.ps1 google_discovery_engine_chat_engine ./resource.ps1 google_discovery_engine_cmek_config +./resource.ps1 google_discovery_engine_control +./resource.ps1 google_discovery_engine_data_connector ./resource.ps1 google_discovery_engine_data_store +./resource.ps1 google_discovery_engine_license_config ./resource.ps1 google_discovery_engine_recommendation_engine ./resource.ps1 google_discovery_engine_schema ./resource.ps1 google_discovery_engine_search_engine ./resource.ps1 google_discovery_engine_sitemap ./resource.ps1 google_discovery_engine_target_site +./resource.ps1 google_discovery_engine_user_store ./resource.ps1 google_dns_response_policy ./resource.ps1 google_dns_response_policy_rule ./resource.ps1 google_document_ai_processor @@ -254,23 +274,12 @@ ./resource.ps1 google_firestore_document ./resource.ps1 google_firestore_field ./resource.ps1 google_firestore_index +./resource.ps1 google_firestore_user_creds ./resource.ps1 google_folder ./resource.ps1 google_folder_access_approval_settings ./resource.ps1 google_folder_iam_audit_config ./resource.ps1 google_folder_organization_policy ./resource.ps1 google_folder_service_identity -./resource.ps1 google_gemini_code_repository_index -./resource.ps1 google_gemini_code_tools_setting -./resource.ps1 google_gemini_code_tools_setting_binding -./resource.ps1 google_gemini_data_sharing_with_google_setting -./resource.ps1 google_gemini_data_sharing_with_google_setting_binding -./resource.ps1 google_gemini_gemini_gcp_enablement_setting -./resource.ps1 google_gemini_gemini_gcp_enablement_setting_binding -./resource.ps1 google_gemini_logging_setting -./resource.ps1 google_gemini_logging_setting_binding -./resource.ps1 google_gemini_release_channel_setting -./resource.ps1 google_gemini_release_channel_setting_binding -./resource.ps1 google_gemini_repository_group ./resource.ps1 google_gke_backup_backup_channel ./resource.ps1 google_gke_backup_backup_plan ./resource.ps1 google_gke_backup_restore_channel @@ -305,15 +314,9 @@ ./resource.ps1 google_iam_organizations_policy_binding ./resource.ps1 google_iam_principal_access_boundary_policy ./resource.ps1 google_iam_projects_policy_binding +./resource.ps1 google_iam_workforce_pool_provider_scim_tenant ./resource.ps1 google_iam_workload_identity_pool_managed_identity ./resource.ps1 google_iam_workload_identity_pool_namespace -./resource.ps1 google_iap_brand -./resource.ps1 google_iap_client -./resource.ps1 google_iap_settings -./resource.ps1 google_iap_tunnel_dest_group -./resource.ps1 google_iap_web_forwarding_rule_service_iam_binding -./resource.ps1 google_iap_web_forwarding_rule_service_iam_member -./resource.ps1 google_iap_web_forwarding_rule_service_iam_policy ./resource.ps1 google_identity_platform_config ./resource.ps1 google_identity_platform_default_supported_idp_config ./resource.ps1 google_identity_platform_inbound_saml_config @@ -329,6 +332,9 @@ ./resource.ps1 google_integrations_client ./resource.ps1 google_kms_autokey_config ./resource.ps1 google_kms_ekm_connection +./resource.ps1 google_kms_folder_kaj_policy_config +./resource.ps1 google_kms_organization_kaj_policy_config +./resource.ps1 google_kms_project_kaj_policy_config ./resource.ps1 google_logging_billing_account_bucket_config ./resource.ps1 google_logging_folder_bucket_config ./resource.ps1 google_logging_organization_bucket_config @@ -343,6 +349,7 @@ ./resource.ps1 google_netapp_backup ./resource.ps1 google_netapp_backup_policy ./resource.ps1 google_netapp_backup_vault +./resource.ps1 google_netapp_host_group ./resource.ps1 google_netapp_kmsconfig ./resource.ps1 google_netapp_storage_pool ./resource.ps1 google_netapp_volume @@ -363,6 +370,7 @@ ./resource.ps1 google_network_security_authz_policy ./resource.ps1 google_network_security_backend_authentication_config ./resource.ps1 google_network_security_client_tls_policy +./resource.ps1 google_network_security_dns_threat_detector ./resource.ps1 google_network_security_firewall_endpoint ./resource.ps1 google_network_security_firewall_endpoint_association ./resource.ps1 google_network_security_gateway_security_policy @@ -373,6 +381,7 @@ ./resource.ps1 google_network_security_intercept_endpoint_group_association ./resource.ps1 google_network_security_mirroring_deployment ./resource.ps1 google_network_security_mirroring_deployment_group +./resource.ps1 google_network_security_mirroring_endpoint ./resource.ps1 google_network_security_mirroring_endpoint_group ./resource.ps1 google_network_security_mirroring_endpoint_group_association ./resource.ps1 google_network_security_security_profile @@ -391,14 +400,18 @@ ./resource.ps1 google_network_services_lb_route_extension ./resource.ps1 google_network_services_lb_traffic_extension ./resource.ps1 google_network_services_mesh +./resource.ps1 google_network_services_multicast_domain ./resource.ps1 google_network_services_service_binding ./resource.ps1 google_network_services_service_lb_policies ./resource.ps1 google_network_services_tcp_route ./resource.ps1 google_network_services_tls_route ./resource.ps1 google_network_services_wasm_plugin +./resource.ps1 google_observability_trace_scope ./resource.ps1 google_oracle_database_autonomous_database ./resource.ps1 google_oracle_database_cloud_exadata_infrastructure ./resource.ps1 google_oracle_database_cloud_vm_cluster +./resource.ps1 google_oracle_database_db_system +./resource.ps1 google_oracle_database_exascale_db_storage_vault ./resource.ps1 google_oracle_database_odb_network ./resource.ps1 google_oracle_database_odb_subnet ./resource.ps1 google_org_policy_custom_constraint @@ -412,12 +425,16 @@ ./resource.ps1 google_parameter_manager_parameter_version ./resource.ps1 google_parameter_manager_regional_parameter ./resource.ps1 google_parameter_manager_regional_parameter_version +./resource.ps1 google_privileged_access_manager_settings ./resource.ps1 google_public_ca_external_account_key ./resource.ps1 google_recaptcha_enterprise_key ./resource.ps1 google_resource_manager_capability ./resource.ps1 google_resource_manager_lien ./resource.ps1 google_saas_runtime_release +./resource.ps1 google_saas_runtime_rollout_kind ./resource.ps1 google_saas_runtime_saas +./resource.ps1 google_saas_runtime_tenant +./resource.ps1 google_saas_runtime_unit ./resource.ps1 google_saas_runtime_unit_kind ./resource.ps1 google_scc_event_threat_detection_custom_module ./resource.ps1 google_scc_folder_custom_module @@ -461,13 +478,8 @@ ./resource.ps1 google_storage_object_acl ./resource.ps1 google_storage_transfer_agent_pool ./resource.ps1 google_storage_transfer_job -./resource.ps1 google_vertex_ai_deployment_resource_pool -./resource.ps1 google_vertex_ai_endpoint_with_model_garden_deployment -./resource.ps1 google_vertex_ai_index_endpoint_deployed_index -./resource.ps1 google_vertex_ai_rag_engine_config -./resource.ps1 google_vpc_access_connector -./resource.ps1 google_workbench_instance -./resource.ps1 google_artifact_registry_maven_artifact -type data -./resource.ps1 google_compute_interconnect_location -type data -./resource.ps1 google_compute_interconnect_locations -type data +./resource.ps1 google_artifact_registry_python_packages -type data +./resource.ps1 google_cloud_identity_policy -type data +./resource.ps1 google_compute_reservation_block -type data +./resource.ps1 google_compute_reservation_sub_block -type data ``` diff --git a/src/files_datasource.go b/src/files_datasource.go index f69c2b05..fc15840f 100644 --- a/src/files_datasource.go +++ b/src/files_datasource.go @@ -1614,3 +1614,93 @@ var dataAwsEcrImages []byte //go:embed mapping/aws/data/s3/aws_s3_access_point.json var dataAwsS3AccessPoint []byte + +//go:embed mapping/aws/data/billing/aws_billing_views.json +var dataAwsBillingViews []byte + +//go:embed mapping/aws/data/mediaconvert/aws_media_convert_queue.json +var dataAwsMediaConvertQueue []byte + +//go:embed mapping/aws/data/memorydb/aws_memorydb_acl.json +var dataAwsMemorydbAcl []byte + +//go:embed mapping/aws/data/memorydb/aws_memorydb_cluster.json +var dataAwsMemorydbCluster []byte + +//go:embed mapping/aws/data/memorydb/aws_memorydb_parameter_group.json +var dataAwsMemorydbParameterGroup []byte + +//go:embed mapping/aws/data/memorydb/aws_memorydb_snapshot.json +var dataAwsMemorydbSnapshot []byte + +//go:embed mapping/aws/data/memorydb/aws_memorydb_subnet_group.json +var dataAwsMemorydbSubnetGroup []byte + +//go:embed mapping/aws/data/memorydb/aws_memorydb_user.json +var dataAwsMemorydbUser []byte + +//go:embed mapping/aws/data/securityhub/aws_securityhub_standards_control_associations.json +var dataAwsSecurityhubStandardsControlAssociations []byte + +//go:embed mapping/aws/data/workspaces/aws_workspaces_workspace.json +var dataAwsWorkspacesWorkspace []byte + +//go:embed mapping/aws/data/appconfig/aws_appconfig_application.json +var dataAwsAppconfigApplication []byte + +//go:embed mapping/aws/data/odb/aws_odb_cloud_autonomous_vm_cluster.json +var dataAwsOdbCloudAutonomousVmCluster []byte + +//go:embed mapping/aws/data/odb/aws_odb_cloud_autonomous_vm_clusters.json +var dataAwsOdbCloudAutonomousVmClusters []byte + +//go:embed mapping/aws/data/odb/aws_odb_cloud_exadata_infrastructure.json +var dataAwsOdbCloudExadataInfrastructure []byte + +//go:embed mapping/aws/data/odb/aws_odb_cloud_exadata_infrastructures.json +var dataAwsOdbCloudExadataInfrastructures []byte + +//go:embed mapping/aws/data/odb/aws_odb_cloud_vm_cluster.json +var dataAwsOdbCloudVmCluster []byte + +//go:embed mapping/aws/data/odb/aws_odb_cloud_vm_clusters.json +var dataAwsOdbCloudVmClusters []byte + +//go:embed mapping/aws/data/odb/aws_odb_db_node.json +var dataAwsOdbDbNode []byte + +//go:embed mapping/aws/data/odb/aws_odb_db_nodes.json +var dataAwsOdbDbNodes []byte + +//go:embed mapping/aws/data/odb/aws_odb_db_server.json +var dataAwsOdbServer []byte + +//go:embed mapping/aws/data/odb/aws_odb_db_servers.json +var dataAwsOdbServers []byte + +//go:embed mapping/aws/data/odb/aws_odb_db_system_shapes.json +var dataAwsOdbDbSystemShapes []byte + +//go:embed mapping/aws/data/odb/aws_odb_gi_versions.json +var dataAwsOdbGiVersions []byte + +//go:embed mapping/aws/data/odb/aws_odb_network.json +var dataAwsOdbNetwork []byte + +//go:embed mapping/aws/data/odb/aws_odb_network_peering_connection.json +var dataAwsOdbNetworkPeeringConnection []byte + +//go:embed mapping/aws/data/odb/aws_odb_network_peering_connections.json +var dataAwsOdbNetworkPeeringConnections []byte + +//go:embed mapping/aws/data/odb/aws_odb_networks.json +var dataAwsOdbNetworks []byte + +//go:embed mapping/aws/data/ecr-public/aws_ecrpublic_images.json +var dataAwsEcrPublicImages []byte + +//go:embed mapping/aws/data/rds/aws_rds_global_cluster.json +var dataAwsRdsGlobalCluster []byte + +//go:embed mapping/aws/data/ec2/aws_vpn_connection.json +var dataAwsVpnConnection []byte diff --git a/src/files_gcp.go b/src/files_gcp.go index da41f65a..236176c1 100644 --- a/src/files_gcp.go +++ b/src/files_gcp.go @@ -2121,3 +2121,78 @@ var googleIapWebRegionForwardingRuleServiceIamMember []byte //go:embed mapping/google/resource/iap/google_iap_web_region_forwarding_rule_service_iam_policy.json var googleIapWebRegionForwardingRuleServiceIamPolicy []byte + +//go:embed mapping/google/resource/iap/google_iap_settings.json +var googleIapSettings []byte + +//go:embed mapping/google/resource/iap/google_iap_tunnel_dest_group.json +var googleIapTunnelDestGroup []byte + +//go:embed mapping/google/resource/iap/google_iap_web_forwarding_rule_service_iam_binding.json +var googleIapWebForwardingRuleServiceIamBinding []byte + +//go:embed mapping/google/resource/iap/google_iap_web_forwarding_rule_service_iam_member.json +var googleIapWebForwardingRuleServiceIamMember []byte + +//go:embed mapping/google/resource/iap/google_iap_web_forwarding_rule_service_iam_policy.json +var googleIapWebForwardingRuleServiceIamPolicy []byte + +//go:embed mapping/google/resource/cloudaicompanion/google_gemini_code_repository_index.json +var googleGeminiCodeRepositoryIndex []byte + +//go:embed mapping/google/resource/cloudaicompanion/google_gemini_code_tools_setting.json +var googleGeminiCodeToolsSetting []byte + +//go:embed mapping/google/resource/cloudaicompanion/google_gemini_code_tools_setting_binding.json +var googleGeminiCodeToolsSettingBinding []byte + +//go:embed mapping/google/resource/cloudaicompanion/google_gemini_data_sharing_with_google_setting.json +var googleGeminiDataSharingWithGoogleSetting []byte + +//go:embed mapping/google/resource/cloudaicompanion/google_gemini_data_sharing_with_google_setting_binding.json +var googleGeminiDataSharingWithGoogleSettingBinding []byte + +//go:embed mapping/google/resource/cloudaicompanion/google_gemini_gemini_gcp_enablement_setting.json +var googleGeminiGeminiGcpEnablementSetting []byte + +//go:embed mapping/google/resource/cloudaicompanion/google_gemini_gemini_gcp_enablement_setting_binding.json +var googleGeminiGeminiGcpEnablementSettingBinding []byte + +//go:embed mapping/google/resource/cloudaicompanion/google_gemini_logging_setting.json +var googleGeminiLoggingSetting []byte + +//go:embed mapping/google/resource/cloudaicompanion/google_gemini_logging_setting_binding.json +var googleGeminiLoggingSettingBinding []byte + +//go:embed mapping/google/resource/cloudaicompanion/google_gemini_release_channel_setting.json +var googleGeminiReleaseChannelSetting []byte + +//go:embed mapping/google/resource/cloudaicompanion/google_gemini_release_channel_setting_binding.json +var googleGeminiReleaseChannelSettingBinding []byte + +//go:embed mapping/google/resource/cloudaicompanion/google_gemini_repository_group.json +var googleGeminiRepositoryGroup []byte + +//go:embed mapping/google/resource/aiplatform/google_vertex_ai_cache_config.json +var googleVertexAiCacheConfig []byte + +//go:embed mapping/google/resource/aiplatform/google_vertex_ai_deployment_resource_pool.json +var googleVertexAiDeploymentResourcePool []byte + +//go:embed mapping/google/resource/aiplatform/google_vertex_ai_rag_engine_config.json +var googleVertexAiRagEngineConfig []byte + +//go:embed mapping/google/resource/aiplatform/google_vertex_ai_reasoning_engine.json +var googleVertexAiReasoningEngine []byte + +//go:embed mapping/google/resource/vpcaccess/google_vpc_access_connector.json +var googleVpcAccessConnector []byte + +//go:embed mapping/google/resource/notebooks/google_workbench_instance.json +var googleWorkbenchInstance []byte + +//go:embed mapping/google/resource/aiplatform/google_vertex_ai_endpoint_with_model_garden_deployment.json +var googleVertexAiEndpointWithModelGardenDeployment []byte + +//go:embed mapping/google/resource/aiplatform/google_vertex_ai_index_endpoint_deployed_index.json +var googleVertexAiIndexEndpointDeployedIndex []byte diff --git a/src/files_gcp_datasource.go b/src/files_gcp_datasource.go index b0192d51..fdd48fc0 100644 --- a/src/files_gcp_datasource.go +++ b/src/files_gcp_datasource.go @@ -978,3 +978,21 @@ var dataGoogleBigqueryDatapolicyv2DataPolicyIamPolicy []byte //go:embed mapping/google/data/iap/google_iap_web_forwarding_rule_service_iam_policy.json var dataGoogleIapForwardingRuleServiceIamPolicy []byte + +//go:embed mapping/google/data/artifactregistry/google_artifact_registry_maven_artifact.json +var dataGoogleArtifactRegistryMavenArtifact []byte + +//go:embed mapping/google/data/artifactregistry/google_artifact_registry_maven_artifacts.json +var dataGoogleArtifactRegistryMavenArtifacts []byte + +//go:embed mapping/google/data/artifactregistry/google_artifact_registry_npm_packages.json +var dataGoogleArtifactRegistryNpmPackages []byte + +//go:embed mapping/google/data/compute/google_compute_interconnect_location.json +var dataGoogleComputeInterconnectLocation []byte + +//go:embed mapping/google/data/compute/google_compute_interconnect_locations.json +var dataGoogleComputeInterconnectLocations []byte + +//go:embed mapping/google/data/artifactregistry/google_artifact_registry_packages.json +var dataGoogleArtifactRegistryPackages []byte diff --git a/src/gcp.go b/src/gcp.go index 81f75344..4193c863 100644 --- a/src/gcp.go +++ b/src/gcp.go @@ -814,4 +814,31 @@ var gCPTfLookup = map[string]interface{}{ "google_iap_web_region_forwarding_rule_service_iam_binding": googleIapWebRegionForwardingRuleServiceIamBinding, "google_iap_web_region_forwarding_rule_service_iam_member": googleIapWebRegionForwardingRuleServiceIamMember, "google_iap_web_region_forwarding_rule_service_iam_policy": googleIapWebRegionForwardingRuleServiceIamPolicy, + "google_iap_brand": placeholder, //being deprecated + "google_iap_client": placeholder, //being deprecated + "google_iap_settings": googleIapSettings, + "google_iap_tunnel_dest_group": googleIapTunnelDestGroup, + "google_iap_web_forwarding_rule_service_iam_binding": googleIapWebForwardingRuleServiceIamBinding, + "google_iap_web_forwarding_rule_service_iam_member": googleIapWebForwardingRuleServiceIamMember, + "google_iap_web_forwarding_rule_service_iam_policy": googleIapWebForwardingRuleServiceIamPolicy, + "google_gemini_code_repository_index": googleGeminiCodeRepositoryIndex, + "google_gemini_code_tools_setting": googleGeminiCodeToolsSetting, + "google_gemini_code_tools_setting_binding": googleGeminiCodeToolsSettingBinding, + "google_gemini_data_sharing_with_google_setting": googleGeminiDataSharingWithGoogleSetting, + "google_gemini_data_sharing_with_google_setting_binding": googleGeminiDataSharingWithGoogleSettingBinding, + "google_gemini_gemini_gcp_enablement_setting": googleGeminiGeminiGcpEnablementSetting, + "google_gemini_gemini_gcp_enablement_setting_binding": googleGeminiGeminiGcpEnablementSettingBinding, + "google_gemini_logging_setting": googleGeminiLoggingSetting, + "google_gemini_logging_setting_binding": googleGeminiLoggingSettingBinding, + "google_gemini_release_channel_setting": googleGeminiReleaseChannelSetting, + "google_gemini_release_channel_setting_binding": googleGeminiReleaseChannelSettingBinding, + "google_gemini_repository_group": googleGeminiRepositoryGroup, + "google_vertex_ai_cache_config": googleVertexAiCacheConfig, + "google_vertex_ai_deployment_resource_pool": googleVertexAiDeploymentResourcePool, + "google_vertex_ai_rag_engine_config": googleVertexAiRagEngineConfig, + "google_vertex_ai_reasoning_engine": googleVertexAiReasoningEngine, + "google_vpc_access_connector": googleVpcAccessConnector, + "google_workbench_instance": googleWorkbenchInstance, + "google_vertex_ai_endpoint_with_model_garden_deployment": googleVertexAiEndpointWithModelGardenDeployment, + "google_vertex_ai_index_endpoint_deployed_index": googleVertexAiIndexEndpointDeployedIndex, } diff --git a/src/gcp_datasource.go b/src/gcp_datasource.go index bb0853ec..56a9a275 100644 --- a/src/gcp_datasource.go +++ b/src/gcp_datasource.go @@ -417,6 +417,12 @@ func GCPDataLookup(result string) interface{} { "google_backup_dr_data_source_references": dataGoogleBackupDrDataSourceReferences, "google_bigquery_datapolicyv2_data_policy_iam_policy": dataGoogleBigqueryDatapolicyv2DataPolicyIamPolicy, "google_iap_web_forwarding_rule_service_iam_policy": dataGoogleIapForwardingRuleServiceIamPolicy, + "google_artifact_registry_maven_artifact": dataGoogleArtifactRegistryMavenArtifact, + "google_artifact_registry_maven_artifacts": dataGoogleArtifactRegistryMavenArtifacts, + "google_artifact_registry_npm_packages": dataGoogleArtifactRegistryNpmPackages, + "google_compute_interconnect_location": dataGoogleComputeInterconnectLocation, + "google_compute_interconnect_locations": dataGoogleComputeInterconnectLocations, + "google_artifact_registry_packages": dataGoogleArtifactRegistryPackages, } return TFLookup[result] diff --git a/src/gcp_policy_test.go b/src/gcp_policy_test.go index a2dabef4..16fdab3d 100644 --- a/src/gcp_policy_test.go +++ b/src/gcp_policy_test.go @@ -10,7 +10,7 @@ import ( func TestGCPPolicy(t *testing.T) { t.Parallel() - os.Setenv("GCP_PROJECT", "pike-412922") + _ = os.Setenv("GCP_PROJECT", "pike-412922") type args struct { permissions []string } @@ -66,9 +66,9 @@ func TestGetCurrentProject_EnvironmentVariables(t *testing.T) { // Clean up after test defer func() { - os.Setenv("GOOGLE_CLOUD_PROJECT", originalGoogleCloudProject) - os.Setenv("GOOGLE_PROJECT", originalGoogleProject) - os.Setenv("GCP_PROJECT", originalGcpProject) + _ = os.Setenv("GOOGLE_CLOUD_PROJECT", originalGoogleCloudProject) + _ = os.Setenv("GOOGLE_PROJECT", originalGoogleProject) + _ = os.Setenv("GCP_PROJECT", originalGcpProject) }() tests := []struct { @@ -101,19 +101,19 @@ func TestGetCurrentProject_EnvironmentVariables(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { // Clear all environment variables - os.Unsetenv("GOOGLE_CLOUD_PROJECT") - os.Unsetenv("GOOGLE_PROJECT") - os.Unsetenv("GCP_PROJECT") + _ = os.Unsetenv("GOOGLE_CLOUD_PROJECT") + _ = os.Unsetenv("GOOGLE_PROJECT") + _ = os.Unsetenv("GCP_PROJECT") // Set test values if tt.googleCloudProject != "" { - os.Setenv("GOOGLE_CLOUD_PROJECT", tt.googleCloudProject) + _ = os.Setenv("GOOGLE_CLOUD_PROJECT", tt.googleCloudProject) } if tt.googleProject != "" { - os.Setenv("GOOGLE_PROJECT", tt.googleProject) + _ = os.Setenv("GOOGLE_PROJECT", tt.googleProject) } if tt.gcpProject != "" { - os.Setenv("GCP_PROJECT", tt.gcpProject) + _ = os.Setenv("GCP_PROJECT", tt.gcpProject) } project, err := getCurrentProject() @@ -138,27 +138,27 @@ func TestGetCurrentProject_GcloudConfigFile(t *testing.T) { // Clean up after test defer func() { - os.Setenv("GOOGLE_CLOUD_PROJECT", originalGoogleCloudProject) - os.Setenv("GOOGLE_PROJECT", originalGoogleProject) - os.Setenv("GCP_PROJECT", originalGcpProject) - os.Setenv("HOME", originalHome) - os.Setenv("APPDATA", originalAppData) + _ = os.Setenv("GOOGLE_CLOUD_PROJECT", originalGoogleCloudProject) + _ = os.Setenv("GOOGLE_PROJECT", originalGoogleProject) + _ = os.Setenv("GCP_PROJECT", originalGcpProject) + _ = os.Setenv("HOME", originalHome) + _ = os.Setenv("APPDATA", originalAppData) }() // Clear environment variables to force config file reading - os.Unsetenv("GOOGLE_CLOUD_PROJECT") - os.Unsetenv("GOOGLE_PROJECT") - os.Unsetenv("GCP_PROJECT") + _ = os.Unsetenv("GOOGLE_CLOUD_PROJECT") + _ = os.Unsetenv("GOOGLE_PROJECT") + _ = os.Unsetenv("GCP_PROJECT") // Create temporary directory structure tempDir := t.TempDir() var configPath string if runtime.GOOS != "windows" { - os.Setenv("HOME", tempDir) + _ = os.Setenv("HOME", tempDir) configPath = filepath.Join(tempDir, ".config", "gcloud", "configurations", "config_default") } else { - os.Setenv("APPDATA", tempDir) + _ = os.Setenv("APPDATA", tempDir) configPath = filepath.Join(tempDir, "gcloud", "configurations", "config_default") } @@ -201,15 +201,15 @@ func TestGetCurrentProject_EmptyEnvironmentVariables(t *testing.T) { // Clean up after test defer func() { - os.Setenv("GOOGLE_CLOUD_PROJECT", originalGoogleCloudProject) - os.Setenv("GOOGLE_PROJECT", originalGoogleProject) - os.Setenv("GCP_PROJECT", originalGcpProject) + _ = os.Setenv("GOOGLE_CLOUD_PROJECT", originalGoogleCloudProject) + _ = os.Setenv("GOOGLE_PROJECT", originalGoogleProject) + _ = os.Setenv("GCP_PROJECT", originalGcpProject) }() // Test empty string environment variables (should be treated as not set) - os.Setenv("GOOGLE_CLOUD_PROJECT", "") - os.Setenv("GOOGLE_PROJECT", "") - os.Setenv("GCP_PROJECT", "") + _ = os.Setenv("GOOGLE_CLOUD_PROJECT", "") + _ = os.Setenv("GOOGLE_PROJECT", "") + _ = os.Setenv("GCP_PROJECT", "") // This will likely fail due to no credentials or config file, but we're testing the logic _, err := getCurrentProject() @@ -229,26 +229,26 @@ func TestGetCurrentProject_MissingConfigFile(t *testing.T) { // Clean up after test defer func() { - os.Setenv("GOOGLE_CLOUD_PROJECT", originalGoogleCloudProject) - os.Setenv("GOOGLE_PROJECT", originalGoogleProject) - os.Setenv("GCP_PROJECT", originalGcpProject) - os.Setenv("HOME", originalHome) - os.Setenv("APPDATA", originalAppData) + _ = os.Setenv("GOOGLE_CLOUD_PROJECT", originalGoogleCloudProject) + _ = os.Setenv("GOOGLE_PROJECT", originalGoogleProject) + _ = os.Setenv("GCP_PROJECT", originalGcpProject) + _ = os.Setenv("HOME", originalHome) + _ = os.Setenv("APPDATA", originalAppData) }() // Clear environment variables - os.Unsetenv("GOOGLE_CLOUD_PROJECT") - os.Unsetenv("GOOGLE_PROJECT") - os.Unsetenv("GCP_PROJECT") + _ = os.Unsetenv("GOOGLE_CLOUD_PROJECT") + _ = os.Unsetenv("GOOGLE_PROJECT") + _ = os.Unsetenv("GCP_PROJECT") // Set HOME/APPDATA to non-existent directory tempDir := t.TempDir() nonExistentDir := filepath.Join(tempDir, "nonexistent") if runtime.GOOS != "windows" { - os.Setenv("HOME", nonExistentDir) + _ = os.Setenv("HOME", nonExistentDir) } else { - os.Setenv("APPDATA", nonExistentDir) + _ = os.Setenv("APPDATA", nonExistentDir) } _, err := getCurrentProject() @@ -267,27 +267,27 @@ func TestGetCurrentProject_InvalidConfigFile(t *testing.T) { // Clean up after test defer func() { - os.Setenv("GOOGLE_CLOUD_PROJECT", originalGoogleCloudProject) - os.Setenv("GOOGLE_PROJECT", originalGoogleProject) - os.Setenv("GCP_PROJECT", originalGcpProject) - os.Setenv("HOME", originalHome) - os.Setenv("APPDATA", originalAppData) + _ = os.Setenv("GOOGLE_CLOUD_PROJECT", originalGoogleCloudProject) + _ = os.Setenv("GOOGLE_PROJECT", originalGoogleProject) + _ = os.Setenv("GCP_PROJECT", originalGcpProject) + _ = os.Setenv("HOME", originalHome) + _ = os.Setenv("APPDATA", originalAppData) }() // Clear environment variables - os.Unsetenv("GOOGLE_CLOUD_PROJECT") - os.Unsetenv("GOOGLE_PROJECT") - os.Unsetenv("GCP_PROJECT") + _ = os.Unsetenv("GOOGLE_CLOUD_PROJECT") + _ = os.Unsetenv("GOOGLE_PROJECT") + _ = os.Unsetenv("GCP_PROJECT") // Create temporary directory structure tempDir := t.TempDir() var configPath string if runtime.GOOS != "windows" { - os.Setenv("HOME", tempDir) + _ = os.Setenv("HOME", tempDir) configPath = filepath.Join(tempDir, ".config", "gcloud", "configurations", "config_default") } else { - os.Setenv("APPDATA", tempDir) + _ = os.Setenv("APPDATA", tempDir) configPath = filepath.Join(tempDir, "gcloud", "configurations", "config_default") } @@ -324,27 +324,27 @@ func TestGetCurrentProject_ConfigFileWithoutProject(t *testing.T) { // Clean up after test defer func() { - os.Setenv("GOOGLE_CLOUD_PROJECT", originalGoogleCloudProject) - os.Setenv("GOOGLE_PROJECT", originalGoogleProject) - os.Setenv("GCP_PROJECT", originalGcpProject) - os.Setenv("HOME", originalHome) - os.Setenv("APPDATA", originalAppData) + _ = os.Setenv("GOOGLE_CLOUD_PROJECT", originalGoogleCloudProject) + _ = os.Setenv("GOOGLE_PROJECT", originalGoogleProject) + _ = os.Setenv("GCP_PROJECT", originalGcpProject) + _ = os.Setenv("HOME", originalHome) + _ = os.Setenv("APPDATA", originalAppData) }() // Clear environment variables - os.Unsetenv("GOOGLE_CLOUD_PROJECT") - os.Unsetenv("GOOGLE_PROJECT") - os.Unsetenv("GCP_PROJECT") + _ = os.Unsetenv("GOOGLE_CLOUD_PROJECT") + _ = os.Unsetenv("GOOGLE_PROJECT") + _ = os.Unsetenv("GCP_PROJECT") // Create temporary directory structure tempDir := t.TempDir() var configPath string if runtime.GOOS != "windows" { - os.Setenv("HOME", tempDir) + _ = os.Setenv("HOME", tempDir) configPath = filepath.Join(tempDir, ".config", "gcloud", "configurations", "config_default") } else { - os.Setenv("APPDATA", tempDir) + _ = os.Setenv("APPDATA", tempDir) configPath = filepath.Join(tempDir, "gcloud", "configurations", "config_default") } diff --git a/src/mapping/aws/data/appconfig/aws_appconfig_application.json b/src/mapping/aws/data/appconfig/aws_appconfig_application.json new file mode 100644 index 00000000..d1cdcebd --- /dev/null +++ b/src/mapping/aws/data/appconfig/aws_appconfig_application.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "appconfig:ListApplications" + ] + } +] diff --git a/src/mapping/google/resource/google_dataproc_gdc_application_environment.json b/src/mapping/aws/data/billing/aws_billing_views.json similarity index 67% rename from src/mapping/google/resource/google_dataproc_gdc_application_environment.json rename to src/mapping/aws/data/billing/aws_billing_views.json index 45e4fdaf..349f67c9 100644 --- a/src/mapping/google/resource/google_dataproc_gdc_application_environment.json +++ b/src/mapping/aws/data/billing/aws_billing_views.json @@ -6,6 +6,8 @@ }, "destroy": [], "modify": [], - "plan": [] + "plan": [ + "billing:ListBillingViews" + ] } ] diff --git a/src/mapping/aws/data/ec2/aws_vpn_connection.json b/src/mapping/aws/data/ec2/aws_vpn_connection.json new file mode 100644 index 00000000..8d297004 --- /dev/null +++ b/src/mapping/aws/data/ec2/aws_vpn_connection.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "ec2:DescribeVpnConnections" + ] + } +] diff --git a/src/mapping/google/resource/google_dataproc_gdc_service_instance.json b/src/mapping/aws/data/ecr-public/aws_ecrpublic_images.json similarity index 67% rename from src/mapping/google/resource/google_dataproc_gdc_service_instance.json rename to src/mapping/aws/data/ecr-public/aws_ecrpublic_images.json index 45e4fdaf..007d998a 100644 --- a/src/mapping/google/resource/google_dataproc_gdc_service_instance.json +++ b/src/mapping/aws/data/ecr-public/aws_ecrpublic_images.json @@ -6,6 +6,8 @@ }, "destroy": [], "modify": [], - "plan": [] + "plan": [ + "ecr-public:DescribeImages" + ] } ] diff --git a/src/mapping/aws/data/mediaconvert/aws_media_convert_queue.json b/src/mapping/aws/data/mediaconvert/aws_media_convert_queue.json new file mode 100644 index 00000000..39894073 --- /dev/null +++ b/src/mapping/aws/data/mediaconvert/aws_media_convert_queue.json @@ -0,0 +1,14 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "mediaconvert:GetQueue", + "mediaconvert:ListTagsForResource" + ] + } +] diff --git a/src/mapping/google/data/google_compute_interconnect_locations.json b/src/mapping/aws/data/memorydb/aws_memorydb_acl.json similarity index 68% rename from src/mapping/google/data/google_compute_interconnect_locations.json rename to src/mapping/aws/data/memorydb/aws_memorydb_acl.json index 45e4fdaf..4105d11d 100644 --- a/src/mapping/google/data/google_compute_interconnect_locations.json +++ b/src/mapping/aws/data/memorydb/aws_memorydb_acl.json @@ -6,6 +6,8 @@ }, "destroy": [], "modify": [], - "plan": [] + "plan": [ + "memorydb:DescribeACLs" + ] } ] diff --git a/src/mapping/google/resource/google_dataproc_gdc_spark_application.json b/src/mapping/aws/data/memorydb/aws_memorydb_cluster.json similarity index 67% rename from src/mapping/google/resource/google_dataproc_gdc_spark_application.json rename to src/mapping/aws/data/memorydb/aws_memorydb_cluster.json index 45e4fdaf..c71d85b7 100644 --- a/src/mapping/google/resource/google_dataproc_gdc_spark_application.json +++ b/src/mapping/aws/data/memorydb/aws_memorydb_cluster.json @@ -6,6 +6,8 @@ }, "destroy": [], "modify": [], - "plan": [] + "plan": [ + "memorydb:DescribeClusters" + ] } ] diff --git a/src/mapping/aws/data/memorydb/aws_memorydb_parameter_group.json b/src/mapping/aws/data/memorydb/aws_memorydb_parameter_group.json new file mode 100644 index 00000000..86534bb6 --- /dev/null +++ b/src/mapping/aws/data/memorydb/aws_memorydb_parameter_group.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "memorydb:DescribeParameterGroups" + ] + } +] diff --git a/src/mapping/aws/data/memorydb/aws_memorydb_snapshot.json b/src/mapping/aws/data/memorydb/aws_memorydb_snapshot.json new file mode 100644 index 00000000..e566c281 --- /dev/null +++ b/src/mapping/aws/data/memorydb/aws_memorydb_snapshot.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "memorydb:DescribeSnapshots" + ] + } +] diff --git a/src/mapping/aws/data/memorydb/aws_memorydb_subnet_group.json b/src/mapping/aws/data/memorydb/aws_memorydb_subnet_group.json new file mode 100644 index 00000000..42557913 --- /dev/null +++ b/src/mapping/aws/data/memorydb/aws_memorydb_subnet_group.json @@ -0,0 +1,14 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "memorydb:DescribeSubnetGroups", + "memorydb:ListTags" + ] + } +] diff --git a/src/mapping/aws/data/memorydb/aws_memorydb_user.json b/src/mapping/aws/data/memorydb/aws_memorydb_user.json new file mode 100644 index 00000000..d02d86d1 --- /dev/null +++ b/src/mapping/aws/data/memorydb/aws_memorydb_user.json @@ -0,0 +1,14 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "memorydb:DescribeUser", + "memorydb:DescribeUsers" + ] + } +] diff --git a/src/mapping/aws/data/odb/aws_odb_cloud_autonomous_vm_cluster.json b/src/mapping/aws/data/odb/aws_odb_cloud_autonomous_vm_cluster.json new file mode 100644 index 00000000..8801ad3e --- /dev/null +++ b/src/mapping/aws/data/odb/aws_odb_cloud_autonomous_vm_cluster.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "odb:GetCloudAutonomousVmCluster" + ] + } +] diff --git a/src/mapping/aws/data/odb/aws_odb_cloud_autonomous_vm_clusters.json b/src/mapping/aws/data/odb/aws_odb_cloud_autonomous_vm_clusters.json new file mode 100644 index 00000000..d6618a15 --- /dev/null +++ b/src/mapping/aws/data/odb/aws_odb_cloud_autonomous_vm_clusters.json @@ -0,0 +1,13 @@ +[ + { + "apply": [ + "odb:ListCloudAutonomousVmClusters" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/aws/data/odb/aws_odb_cloud_exadata_infrastructure.json b/src/mapping/aws/data/odb/aws_odb_cloud_exadata_infrastructure.json new file mode 100644 index 00000000..82a5d5b9 --- /dev/null +++ b/src/mapping/aws/data/odb/aws_odb_cloud_exadata_infrastructure.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "odb:GetCloudExadataInfrastructure" + ] + } +] diff --git a/src/mapping/aws/data/odb/aws_odb_cloud_exadata_infrastructures.json b/src/mapping/aws/data/odb/aws_odb_cloud_exadata_infrastructures.json new file mode 100644 index 00000000..c1bf5b45 --- /dev/null +++ b/src/mapping/aws/data/odb/aws_odb_cloud_exadata_infrastructures.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "odb:ListCloudExadataInfrastructures" + ] + } +] diff --git a/src/mapping/aws/data/odb/aws_odb_cloud_vm_cluster.json b/src/mapping/aws/data/odb/aws_odb_cloud_vm_cluster.json new file mode 100644 index 00000000..ab260bb3 --- /dev/null +++ b/src/mapping/aws/data/odb/aws_odb_cloud_vm_cluster.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "odb:GetCloudVmCluster" + ] + } +] diff --git a/src/mapping/aws/data/odb/aws_odb_cloud_vm_clusters.json b/src/mapping/aws/data/odb/aws_odb_cloud_vm_clusters.json new file mode 100644 index 00000000..62411a36 --- /dev/null +++ b/src/mapping/aws/data/odb/aws_odb_cloud_vm_clusters.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "odb:ListCloudVmClusters" + ] + } +] diff --git a/src/mapping/aws/data/odb/aws_odb_db_node.json b/src/mapping/aws/data/odb/aws_odb_db_node.json new file mode 100644 index 00000000..a0623069 --- /dev/null +++ b/src/mapping/aws/data/odb/aws_odb_db_node.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "odb:GetDbNode" + ] + } +] diff --git a/src/mapping/aws/data/odb/aws_odb_db_nodes.json b/src/mapping/aws/data/odb/aws_odb_db_nodes.json new file mode 100644 index 00000000..25958de7 --- /dev/null +++ b/src/mapping/aws/data/odb/aws_odb_db_nodes.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "odb:ListDbNodes" + ] + } +] diff --git a/src/mapping/aws/data/odb/aws_odb_db_server.json b/src/mapping/aws/data/odb/aws_odb_db_server.json new file mode 100644 index 00000000..f0ac70e7 --- /dev/null +++ b/src/mapping/aws/data/odb/aws_odb_db_server.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "odb:GetDbServer" + ] + } +] diff --git a/src/mapping/aws/data/odb/aws_odb_db_servers.json b/src/mapping/aws/data/odb/aws_odb_db_servers.json new file mode 100644 index 00000000..b1f3353b --- /dev/null +++ b/src/mapping/aws/data/odb/aws_odb_db_servers.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "odb:ListDbServers" + ] + } +] diff --git a/src/mapping/aws/data/odb/aws_odb_db_system_shapes.json b/src/mapping/aws/data/odb/aws_odb_db_system_shapes.json new file mode 100644 index 00000000..242f5197 --- /dev/null +++ b/src/mapping/aws/data/odb/aws_odb_db_system_shapes.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "odb:ListDbSystemShapes" + ] + } +] diff --git a/src/mapping/aws/data/odb/aws_odb_gi_versions.json b/src/mapping/aws/data/odb/aws_odb_gi_versions.json new file mode 100644 index 00000000..1d081824 --- /dev/null +++ b/src/mapping/aws/data/odb/aws_odb_gi_versions.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "odb:ListGiVersions" + ] + } +] diff --git a/src/mapping/aws/data/odb/aws_odb_network.json b/src/mapping/aws/data/odb/aws_odb_network.json new file mode 100644 index 00000000..f35f18b9 --- /dev/null +++ b/src/mapping/aws/data/odb/aws_odb_network.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "odb:GetOdbNetwork" + ] + } +] diff --git a/src/mapping/aws/data/odb/aws_odb_network_peering_connection.json b/src/mapping/aws/data/odb/aws_odb_network_peering_connection.json new file mode 100644 index 00000000..af5cab86 --- /dev/null +++ b/src/mapping/aws/data/odb/aws_odb_network_peering_connection.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "odb:GetOdbPeeringConnection" + ] + } +] diff --git a/src/mapping/aws/data/odb/aws_odb_network_peering_connections.json b/src/mapping/aws/data/odb/aws_odb_network_peering_connections.json new file mode 100644 index 00000000..a20f3921 --- /dev/null +++ b/src/mapping/aws/data/odb/aws_odb_network_peering_connections.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "odb:ListOdbPeeringConnections" + ] + } +] diff --git a/src/mapping/aws/data/odb/aws_odb_networks.json b/src/mapping/aws/data/odb/aws_odb_networks.json new file mode 100644 index 00000000..b30f96b4 --- /dev/null +++ b/src/mapping/aws/data/odb/aws_odb_networks.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "odb:ListOdbNetworks" + ] + } +] diff --git a/src/mapping/aws/data/rds/aws_rds_global_cluster.json b/src/mapping/aws/data/rds/aws_rds_global_cluster.json new file mode 100644 index 00000000..ca56de67 --- /dev/null +++ b/src/mapping/aws/data/rds/aws_rds_global_cluster.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "rds:DescribeGlobalClusters" + ] + } +] diff --git a/src/mapping/aws/data/securityhub/aws_securityhub_standards_control_associations.json b/src/mapping/aws/data/securityhub/aws_securityhub_standards_control_associations.json new file mode 100644 index 00000000..87efd3b5 --- /dev/null +++ b/src/mapping/aws/data/securityhub/aws_securityhub_standards_control_associations.json @@ -0,0 +1,14 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "securityhub:ListStandardsControlAssociations", + "securityhub:DescribeStandardsControls" + ] + } +] diff --git a/src/mapping/aws/data/workspaces/aws_workspaces_workspace.json b/src/mapping/aws/data/workspaces/aws_workspaces_workspace.json new file mode 100644 index 00000000..19b29c26 --- /dev/null +++ b/src/mapping/aws/data/workspaces/aws_workspaces_workspace.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "workspaces:DescribeWorkspaces" + ] + } +] diff --git a/src/mapping/google/data/artifactregistry/google_artifact_registry_maven_artifact.json b/src/mapping/google/data/artifactregistry/google_artifact_registry_maven_artifact.json new file mode 100644 index 00000000..ddb1f11f --- /dev/null +++ b/src/mapping/google/data/artifactregistry/google_artifact_registry_maven_artifact.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "artifactregistry.mavenartifacts.list" + ] + } +] diff --git a/src/mapping/google/data/artifactregistry/google_artifact_registry_maven_artifacts.json b/src/mapping/google/data/artifactregistry/google_artifact_registry_maven_artifacts.json new file mode 100644 index 00000000..ddb1f11f --- /dev/null +++ b/src/mapping/google/data/artifactregistry/google_artifact_registry_maven_artifacts.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "artifactregistry.mavenartifacts.list" + ] + } +] diff --git a/src/mapping/google/data/artifactregistry/google_artifact_registry_npm_packages.json b/src/mapping/google/data/artifactregistry/google_artifact_registry_npm_packages.json new file mode 100644 index 00000000..24f09962 --- /dev/null +++ b/src/mapping/google/data/artifactregistry/google_artifact_registry_npm_packages.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "artifactregistry.npmpackages.list" + ] + } +] diff --git a/src/mapping/google/data/artifactregistry/google_artifact_registry_packages.json b/src/mapping/google/data/artifactregistry/google_artifact_registry_packages.json new file mode 100644 index 00000000..b84e9205 --- /dev/null +++ b/src/mapping/google/data/artifactregistry/google_artifact_registry_packages.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "artifactregistry.packages.list" + ] + } +] diff --git a/src/mapping/google/data/compute/google_compute_interconnect_location.json b/src/mapping/google/data/compute/google_compute_interconnect_location.json new file mode 100644 index 00000000..17999352 --- /dev/null +++ b/src/mapping/google/data/compute/google_compute_interconnect_location.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "compute.interconnectLocations.get" + ] + } +] diff --git a/src/mapping/google/data/compute/google_compute_interconnect_locations.json b/src/mapping/google/data/compute/google_compute_interconnect_locations.json new file mode 100644 index 00000000..22c47504 --- /dev/null +++ b/src/mapping/google/data/compute/google_compute_interconnect_locations.json @@ -0,0 +1,13 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [ + "compute.interconnectLocations.list" + ] + } +] diff --git a/src/mapping/google/data/google_artifact_registry_maven_artifact.json b/src/mapping/google/data/google_cloud_identity_policy.json similarity index 100% rename from src/mapping/google/data/google_artifact_registry_maven_artifact.json rename to src/mapping/google/data/google_cloud_identity_policy.json diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_cache_config.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_cache_config.json new file mode 100644 index 00000000..04986d07 --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_cache_config.json @@ -0,0 +1,14 @@ +[ + { + "apply": [ + "aiplatform.cacheConfigs.get", + "aiplatform.cacheConfigs.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_deployment_resource_pool.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_deployment_resource_pool.json new file mode 100644 index 00000000..102ccb5e --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_deployment_resource_pool.json @@ -0,0 +1,16 @@ +[ + { + "apply": [ + "aiplatform.deploymentResourcePools.create", + "aiplatform.deploymentResourcePools.delete", + "aiplatform.deploymentResourcePools.get", + "aiplatform.deploymentResourcePools.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_endpoint_with_model_garden_deployment.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_endpoint_with_model_garden_deployment.json new file mode 100644 index 00000000..15e8f492 --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_endpoint_with_model_garden_deployment.json @@ -0,0 +1,19 @@ +[ + { + "apply": [ + "aiplatform.endpoints.create", + "aiplatform.endpoints.delete", + "aiplatform.endpoints.get", + "aiplatform.endpoints.update", + "aiplatform.endpoints.deploy", + "aiplatform.endpoints.undeploy", + "aiplatform.models.upload" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_index_endpoint_deployed_index.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_index_endpoint_deployed_index.json new file mode 100644 index 00000000..c9713836 --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_index_endpoint_deployed_index.json @@ -0,0 +1,17 @@ +[ + { + "apply": [ + "aiplatform.indexEndpoints.delete", + "aiplatform.indexEndpoints.deploy", + "aiplatform.indexEndpoints.get", + "aiplatform.indexEndpoints.undeploy", + "aiplatform.indexEndpoints.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_rag_engine_config.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_rag_engine_config.json new file mode 100644 index 00000000..ab534ee7 --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_rag_engine_config.json @@ -0,0 +1,14 @@ +[ + { + "apply": [ + "aiplatform.ragEngineConfigs.get", + "aiplatform.ragEngineConfigs.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_reasoning_engine.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_reasoning_engine.json new file mode 100644 index 00000000..23d19e60 --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_reasoning_engine.json @@ -0,0 +1,16 @@ +[ + { + "apply": [ + "aiplatform.reasoningEngines.create", + "aiplatform.reasoningEngines.delete", + "aiplatform.reasoningEngines.get", + "aiplatform.reasoningEngines.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/cloudaicompanion/google_gemini_code_repository_index.json b/src/mapping/google/resource/cloudaicompanion/google_gemini_code_repository_index.json new file mode 100644 index 00000000..76fc2a6d --- /dev/null +++ b/src/mapping/google/resource/cloudaicompanion/google_gemini_code_repository_index.json @@ -0,0 +1,16 @@ +[ + { + "apply": [ + "cloudaicompanion.codeRepositoryIndexes.create", + "cloudaicompanion.codeRepositoryIndexes.delete", + "cloudaicompanion.codeRepositoryIndexes.get", + "cloudaicompanion.codeRepositoryIndexes.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/cloudaicompanion/google_gemini_code_tools_setting.json b/src/mapping/google/resource/cloudaicompanion/google_gemini_code_tools_setting.json new file mode 100644 index 00000000..68b8a4a0 --- /dev/null +++ b/src/mapping/google/resource/cloudaicompanion/google_gemini_code_tools_setting.json @@ -0,0 +1,16 @@ +[ + { + "apply": [ + "cloudaicompanion.codeToolsSettings.create", + "cloudaicompanion.codeToolsSettings.delete", + "cloudaicompanion.codeToolsSettings.get", + "cloudaicompanion.codeToolsSettings.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/cloudaicompanion/google_gemini_code_tools_setting_binding.json b/src/mapping/google/resource/cloudaicompanion/google_gemini_code_tools_setting_binding.json new file mode 100644 index 00000000..e77b08a5 --- /dev/null +++ b/src/mapping/google/resource/cloudaicompanion/google_gemini_code_tools_setting_binding.json @@ -0,0 +1,16 @@ +[ + { + "apply": [ + "cloudaicompanion.settingBindings.codeToolsSettingsCreate", + "cloudaicompanion.settingBindings.codeToolsSettingsDelete", + "cloudaicompanion.settingBindings.codeToolsSettingsGet", + "cloudaicompanion.settingBindings.codeToolsSettingsUpdate" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/cloudaicompanion/google_gemini_data_sharing_with_google_setting.json b/src/mapping/google/resource/cloudaicompanion/google_gemini_data_sharing_with_google_setting.json new file mode 100644 index 00000000..6a25e1ad --- /dev/null +++ b/src/mapping/google/resource/cloudaicompanion/google_gemini_data_sharing_with_google_setting.json @@ -0,0 +1,16 @@ +[ + { + "apply": [ + "cloudaicompanion.dataSharingWithGoogleSettings.create", + "cloudaicompanion.dataSharingWithGoogleSettings.delete", + "cloudaicompanion.dataSharingWithGoogleSettings.get", + "cloudaicompanion.dataSharingWithGoogleSettings.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/cloudaicompanion/google_gemini_data_sharing_with_google_setting_binding.json b/src/mapping/google/resource/cloudaicompanion/google_gemini_data_sharing_with_google_setting_binding.json new file mode 100644 index 00000000..35104cd6 --- /dev/null +++ b/src/mapping/google/resource/cloudaicompanion/google_gemini_data_sharing_with_google_setting_binding.json @@ -0,0 +1,16 @@ +[ + { + "apply": [ + "cloudaicompanion.settingBindings.dataSharingWithGoogleSettingsCreate", + "cloudaicompanion.settingBindings.dataSharingWithGoogleSettingsDelete", + "cloudaicompanion.settingBindings.dataSharingWithGoogleSettingsGet", + "cloudaicompanion.settingBindings.dataSharingWithGoogleSettingsUpdate" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/cloudaicompanion/google_gemini_gemini_gcp_enablement_setting.json b/src/mapping/google/resource/cloudaicompanion/google_gemini_gemini_gcp_enablement_setting.json new file mode 100644 index 00000000..8b4cab83 --- /dev/null +++ b/src/mapping/google/resource/cloudaicompanion/google_gemini_gemini_gcp_enablement_setting.json @@ -0,0 +1,16 @@ +[ + { + "apply": [ + "cloudaicompanion.geminiGcpEnablementSettings.create", + "cloudaicompanion.geminiGcpEnablementSettings.delete", + "cloudaicompanion.geminiGcpEnablementSettings.get", + "cloudaicompanion.geminiGcpEnablementSettings.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/cloudaicompanion/google_gemini_gemini_gcp_enablement_setting_binding.json b/src/mapping/google/resource/cloudaicompanion/google_gemini_gemini_gcp_enablement_setting_binding.json new file mode 100644 index 00000000..d0298df6 --- /dev/null +++ b/src/mapping/google/resource/cloudaicompanion/google_gemini_gemini_gcp_enablement_setting_binding.json @@ -0,0 +1,16 @@ +[ + { + "apply": [ + "cloudaicompanion.settingBindings.geminiGcpEnablementSettingsCreate", + "cloudaicompanion.settingBindings.geminiGcpEnablementSettingsDelete", + "cloudaicompanion.settingBindings.geminiGcpEnablementSettingsGet", + "cloudaicompanion.settingBindings.geminiGcpEnablementSettingsUpdate" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/cloudaicompanion/google_gemini_logging_setting.json b/src/mapping/google/resource/cloudaicompanion/google_gemini_logging_setting.json new file mode 100644 index 00000000..fcee370f --- /dev/null +++ b/src/mapping/google/resource/cloudaicompanion/google_gemini_logging_setting.json @@ -0,0 +1,16 @@ +[ + { + "apply": [ + "cloudaicompanion.loggingSettings.create", + "cloudaicompanion.loggingSettings.delete", + "cloudaicompanion.loggingSettings.get", + "cloudaicompanion.loggingSettings.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/cloudaicompanion/google_gemini_logging_setting_binding.json b/src/mapping/google/resource/cloudaicompanion/google_gemini_logging_setting_binding.json new file mode 100644 index 00000000..ca33e164 --- /dev/null +++ b/src/mapping/google/resource/cloudaicompanion/google_gemini_logging_setting_binding.json @@ -0,0 +1,16 @@ +[ + { + "apply": [ + "cloudaicompanion.settingBindings.loggingSettingsCreate", + "cloudaicompanion.settingBindings.loggingSettingsDelete", + "cloudaicompanion.settingBindings.loggingSettingsGet", + "cloudaicompanion.settingBindings.loggingSettingsUpdate" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/cloudaicompanion/google_gemini_release_channel_setting.json b/src/mapping/google/resource/cloudaicompanion/google_gemini_release_channel_setting.json new file mode 100644 index 00000000..c4adcb70 --- /dev/null +++ b/src/mapping/google/resource/cloudaicompanion/google_gemini_release_channel_setting.json @@ -0,0 +1,16 @@ +[ + { + "apply": [ + "cloudaicompanion.releaseChannelSettings.create", + "cloudaicompanion.releaseChannelSettings.delete", + "cloudaicompanion.releaseChannelSettings.get", + "cloudaicompanion.releaseChannelSettings.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/cloudaicompanion/google_gemini_release_channel_setting_binding.json b/src/mapping/google/resource/cloudaicompanion/google_gemini_release_channel_setting_binding.json new file mode 100644 index 00000000..0f059b11 --- /dev/null +++ b/src/mapping/google/resource/cloudaicompanion/google_gemini_release_channel_setting_binding.json @@ -0,0 +1,16 @@ +[ + { + "apply": [ + "cloudaicompanion.settingBindings.releaseChannelSettingsCreate", + "cloudaicompanion.settingBindings.releaseChannelSettingsDelete", + "cloudaicompanion.settingBindings.releaseChannelSettingsGet", + "cloudaicompanion.settingBindings.releaseChannelSettingsUpdate" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/cloudaicompanion/google_gemini_repository_group.json b/src/mapping/google/resource/cloudaicompanion/google_gemini_repository_group.json new file mode 100644 index 00000000..6652c195 --- /dev/null +++ b/src/mapping/google/resource/cloudaicompanion/google_gemini_repository_group.json @@ -0,0 +1,16 @@ +[ + { + "apply": [ + "cloudaicompanion.repositoryGroups.create", + "cloudaicompanion.repositoryGroups.delete", + "cloudaicompanion.repositoryGroups.get", + "cloudaicompanion.repositoryGroups.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/cloudaicompanion/google_gemini_repository_group_iam_binding.json b/src/mapping/google/resource/cloudaicompanion/google_gemini_repository_group_iam_binding.json index d3541e82..6d39c3bc 100644 --- a/src/mapping/google/resource/cloudaicompanion/google_gemini_repository_group_iam_binding.json +++ b/src/mapping/google/resource/cloudaicompanion/google_gemini_repository_group_iam_binding.json @@ -1,13 +1,16 @@ [ { "apply": [ - "cloudaicompanion.repositoryGroups.getIamPolicy" + "cloudaicompanion.repositoryGroups.getIamPolicy", + "cloudaicompanion.repositoryGroups.setIamPolicy" ], "attributes": { "tags": [] }, "destroy": [], "modify": [], - "plan": [] + "plan": [ + "cloudaicompanion.repositoryGroups.getIamPolicy" + ] } ] diff --git a/src/mapping/google/resource/cloudaicompanion/google_gemini_repository_group_iam_member.json b/src/mapping/google/resource/cloudaicompanion/google_gemini_repository_group_iam_member.json index d3541e82..6d39c3bc 100644 --- a/src/mapping/google/resource/cloudaicompanion/google_gemini_repository_group_iam_member.json +++ b/src/mapping/google/resource/cloudaicompanion/google_gemini_repository_group_iam_member.json @@ -1,13 +1,16 @@ [ { "apply": [ - "cloudaicompanion.repositoryGroups.getIamPolicy" + "cloudaicompanion.repositoryGroups.getIamPolicy", + "cloudaicompanion.repositoryGroups.setIamPolicy" ], "attributes": { "tags": [] }, "destroy": [], "modify": [], - "plan": [] + "plan": [ + "cloudaicompanion.repositoryGroups.getIamPolicy" + ] } ] diff --git a/src/mapping/google/data/google_compute_interconnect_location.json b/src/mapping/google/resource/google_apigee_environment.json similarity index 100% rename from src/mapping/google/data/google_compute_interconnect_location.json rename to src/mapping/google/resource/google_apigee_environment.json diff --git a/src/mapping/google/resource/google_dataproc_metastore_federation.json b/src/mapping/google/resource/google_dataproc_metastore_federation.json deleted file mode 100644 index 45e4fdaf..00000000 --- a/src/mapping/google/resource/google_dataproc_metastore_federation.json +++ /dev/null @@ -1,11 +0,0 @@ -[ - { - "apply": [], - "attributes": { - "tags": [] - }, - "destroy": [], - "modify": [], - "plan": [] - } -] diff --git a/src/mapping/google/resource/google_dataproc_metastore_service.json b/src/mapping/google/resource/google_dataproc_metastore_service.json deleted file mode 100644 index 45e4fdaf..00000000 --- a/src/mapping/google/resource/google_dataproc_metastore_service.json +++ /dev/null @@ -1,11 +0,0 @@ -[ - { - "apply": [], - "attributes": { - "tags": [] - }, - "destroy": [], - "modify": [], - "plan": [] - } -] diff --git a/src/mapping/google/resource/iap/google_iap_settings.json b/src/mapping/google/resource/iap/google_iap_settings.json new file mode 100644 index 00000000..d9abc424 --- /dev/null +++ b/src/mapping/google/resource/iap/google_iap_settings.json @@ -0,0 +1,14 @@ +[ + { + "apply": [ + "iap.webServices.getSettings", + "iap.webServices.updateSettings" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/iap/google_iap_tunnel_dest_group.json b/src/mapping/google/resource/iap/google_iap_tunnel_dest_group.json new file mode 100644 index 00000000..3b5e3fe2 --- /dev/null +++ b/src/mapping/google/resource/iap/google_iap_tunnel_dest_group.json @@ -0,0 +1,16 @@ +[ + { + "apply": [ + "iap.tunnelDestGroups.create", + "iap.tunnelDestGroups.delete", + "iap.tunnelDestGroups.get", + "iap.tunnelDestGroups.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/iap/google_iap_web_forwarding_rule_service_iam_binding.json b/src/mapping/google/resource/iap/google_iap_web_forwarding_rule_service_iam_binding.json new file mode 100644 index 00000000..187c96ae --- /dev/null +++ b/src/mapping/google/resource/iap/google_iap_web_forwarding_rule_service_iam_binding.json @@ -0,0 +1,14 @@ +[ + { + "apply": [ + "iap.webServices.getIamPolicy", + "iap.webServices.setIamPolicy" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/iap/google_iap_web_forwarding_rule_service_iam_member.json b/src/mapping/google/resource/iap/google_iap_web_forwarding_rule_service_iam_member.json new file mode 100644 index 00000000..187c96ae --- /dev/null +++ b/src/mapping/google/resource/iap/google_iap_web_forwarding_rule_service_iam_member.json @@ -0,0 +1,14 @@ +[ + { + "apply": [ + "iap.webServices.getIamPolicy", + "iap.webServices.setIamPolicy" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/iap/google_iap_web_forwarding_rule_service_iam_policy.json b/src/mapping/google/resource/iap/google_iap_web_forwarding_rule_service_iam_policy.json new file mode 100644 index 00000000..187c96ae --- /dev/null +++ b/src/mapping/google/resource/iap/google_iap_web_forwarding_rule_service_iam_policy.json @@ -0,0 +1,14 @@ +[ + { + "apply": [ + "iap.webServices.getIamPolicy", + "iap.webServices.setIamPolicy" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/notebooks/google_workbench_instance.json b/src/mapping/google/resource/notebooks/google_workbench_instance.json new file mode 100644 index 00000000..4369cd64 --- /dev/null +++ b/src/mapping/google/resource/notebooks/google_workbench_instance.json @@ -0,0 +1,16 @@ +[ + { + "apply": [ + "notebooks.instances.create", + "notebooks.instances.delete", + "notebooks.instances.get", + "notebooks.instances.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/vpcaccess/google_vpc_access_connector.json b/src/mapping/google/resource/vpcaccess/google_vpc_access_connector.json new file mode 100644 index 00000000..4dadb545 --- /dev/null +++ b/src/mapping/google/resource/vpcaccess/google_vpc_access_connector.json @@ -0,0 +1,16 @@ +[ + { + "apply": [ + "vpcaccess.connectors.create", + "vpcaccess.connectors.delete", + "vpcaccess.connectors.get", + "vpcaccess.connectors.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/parse/aws-members.json b/src/parse/aws-members.json index 54e49549..1c433ceb 100755 --- a/src/parse/aws-members.json +++ b/src/parse/aws-members.json @@ -171,6 +171,18 @@ "aws_bedrockagent_flow", "aws_bedrockagent_knowledge_base", "aws_bedrockagent_prompt", + "aws_bedrockagentcore_agent_runtime", + "aws_bedrockagentcore_agent_runtime_endpoint", + "aws_bedrockagentcore_api_key_credential_provider", + "aws_bedrockagentcore_browser", + "aws_bedrockagentcore_code_interpreter", + "aws_bedrockagentcore_gateway", + "aws_bedrockagentcore_gateway_target", + "aws_bedrockagentcore_memory", + "aws_bedrockagentcore_memory_strategy", + "aws_bedrockagentcore_oauth2_credential_provider", + "aws_bedrockagentcore_token_vault_cmk", + "aws_bedrockagentcore_workload_identity", "aws_budgets_budget", "aws_budgets_budget_action", "aws_ce_anomaly_monitor", @@ -477,6 +489,7 @@ "aws_ebs_snapshot_copy", "aws_ebs_snapshot_import", "aws_ebs_volume", + "aws_ec2_allowed_images_settings", "aws_ec2_availability_zone_group", "aws_ec2_capacity_block_reservation", "aws_ec2_capacity_reservation", @@ -608,6 +621,7 @@ "aws_finspace_kx_user", "aws_finspace_kx_volume", "aws_fis_experiment_template", + "aws_fis_target_account_configuration", "aws_flow_log", "aws_fms_admin_account", "aws_fms_policy", @@ -737,6 +751,7 @@ "aws_internet_gateway", "aws_internet_gateway_attachment", "aws_internetmonitor_monitor", + "aws_invoicing_invoice_unit", "aws_iot_authorizer", "aws_iot_billing_group", "aws_iot_ca_certificate", @@ -789,7 +804,9 @@ "aws_kms_replica_key", "aws_lakeformation_data_cells_filter", "aws_lakeformation_data_lake_settings", + "aws_lakeformation_identity_center_configuration", "aws_lakeformation_lf_tag", + "aws_lakeformation_lf_tag_expression", "aws_lakeformation_opt_in", "aws_lakeformation_permissions", "aws_lakeformation_resource", @@ -937,6 +954,8 @@ "aws_networkfirewall_rule_group", "aws_networkfirewall_tls_inspection_configuration", "aws_networkfirewall_vpc_endpoint_association", + "aws_networkflowmonitor_monitor", + "aws_networkflowmonitor_scope", "aws_networkmanager_attachment_accepter", "aws_networkmanager_connect_attachment", "aws_networkmanager_connect_peer", @@ -966,6 +985,7 @@ "aws_oam_link", "aws_oam_sink", "aws_oam_sink_policy", + "aws_observabilityadmin_centralization_rule_for_organization", "aws_odb_cloud_autonomous_vm_cluster", "aws_odb_cloud_exadata_infrastructure", "aws_odb_cloud_vm_cluster", @@ -1015,6 +1035,7 @@ "aws_placement_group", "aws_prometheus_alert_manager_definition", "aws_prometheus_query_logging_configuration", + "aws_prometheus_resource_policy", "aws_prometheus_rule_group_namespace", "aws_prometheus_scraper", "aws_prometheus_workspace", @@ -1401,11 +1422,14 @@ "aws_transfer_agreement", "aws_transfer_certificate", "aws_transfer_connector", + "aws_transfer_host_key", "aws_transfer_profile", "aws_transfer_server", "aws_transfer_ssh_key", "aws_transfer_tag", "aws_transfer_user", + "aws_transfer_web_app", + "aws_transfer_web_app_customization", "aws_transfer_workflow", "aws_verifiedaccess_endpoint", "aws_verifiedaccess_group", @@ -1559,6 +1583,7 @@ "aws_apigatewayv2_apis", "aws_apigatewayv2_export", "aws_apigatewayv2_vpc_link", + "aws_appconfig_application", "aws_appconfig_configuration_profile", "aws_appconfig_configuration_profiles", "aws_appconfig_environment", @@ -1751,6 +1776,7 @@ "aws_ecr_repository", "aws_ecr_repository_creation_template", "aws_ecrpublic_authorization_token", + "aws_ecrpublic_images", "aws_ecs_cluster", "aws_ecs_clusters", "aws_ecs_container_definition", @@ -1942,10 +1968,21 @@ "aws_oam_sink", "aws_oam_sinks", "aws_odb_cloud_autonomous_vm_cluster", + "aws_odb_cloud_autonomous_vm_clusters", "aws_odb_cloud_exadata_infrastructure", + "aws_odb_cloud_exadata_infrastructures", "aws_odb_cloud_vm_cluster", + "aws_odb_cloud_vm_clusters", + "aws_odb_db_node", + "aws_odb_db_nodes", + "aws_odb_db_server", + "aws_odb_db_servers", + "aws_odb_db_system_shapes", + "aws_odb_gi_versions", "aws_odb_network", "aws_odb_network_peering_connection", + "aws_odb_network_peering_connections", + "aws_odb_networks", "aws_opensearch_domain", "aws_opensearchserverless_access_policy", "aws_opensearchserverless_collection", @@ -1992,6 +2029,7 @@ "aws_rds_cluster_parameter_group", "aws_rds_clusters", "aws_rds_engine_version", + "aws_rds_global_cluster", "aws_rds_orderable_db_instance", "aws_rds_reserved_instance_offering", "aws_redshift_cluster", @@ -2133,6 +2171,7 @@ "aws_vpclattice_service", "aws_vpclattice_service_network", "aws_vpcs", + "aws_vpn_connection", "aws_vpn_gateway", "aws_waf_ipset", "aws_waf_rate_based_rule", diff --git a/src/parse/azurerm-members.json b/src/parse/azurerm-members.json index 70150ce6..753b8536 100755 --- a/src/parse/azurerm-members.json +++ b/src/parse/azurerm-members.json @@ -60,6 +60,10 @@ "azurerm_api_management_tag", "azurerm_api_management_user", "azurerm_api_management_workspace", + "azurerm_api_management_workspace_api_version_set", + "azurerm_api_management_workspace_certificate", + "azurerm_api_management_workspace_policy", + "azurerm_api_management_workspace_policy_fragment", "azurerm_app_configuration", "azurerm_app_configuration_feature", "azurerm_app_configuration_key", @@ -561,6 +565,8 @@ "azurerm_managed_disk", "azurerm_managed_disk_sas_token", "azurerm_managed_lustre_file_system", + "azurerm_managed_redis", + "azurerm_managed_redis_geo_replication", "azurerm_management_group", "azurerm_management_group_policy_assignment", "azurerm_management_group_policy_exemption", @@ -587,6 +593,7 @@ "azurerm_mobile_network_site", "azurerm_mobile_network_slice", "azurerm_mongo_cluster", + "azurerm_mongo_cluster_firewall_rule", "azurerm_monitor_aad_diagnostic_setting", "azurerm_monitor_action_group", "azurerm_monitor_activity_log_alert", @@ -677,6 +684,7 @@ "azurerm_network_manager_management_group_connection", "azurerm_network_manager_network_group", "azurerm_network_manager_routing_configuration", + "azurerm_network_manager_routing_rule", "azurerm_network_manager_routing_rule_collection", "azurerm_network_manager_scope_connection", "azurerm_network_manager_security_admin_configuration", @@ -700,8 +708,12 @@ "azurerm_notification_hub_namespace", "azurerm_oracle_autonomous_database", "azurerm_oracle_autonomous_database_backup", + "azurerm_oracle_autonomous_database_clone_from_backup", + "azurerm_oracle_autonomous_database_clone_from_database", "azurerm_oracle_cloud_vm_cluster", "azurerm_oracle_exadata_infrastructure", + "azurerm_oracle_exascale_database_storage_vault", + "azurerm_oracle_resource_anchor", "azurerm_orbital_contact", "azurerm_orbital_contact_profile", "azurerm_orbital_spacecraft", @@ -885,7 +897,6 @@ "azurerm_site_recovery_vmware_replication_policy_association", "azurerm_snapshot", "azurerm_source_control_token", - "azurerm_spatial_anchors_account", "azurerm_spring_cloud_accelerator", "azurerm_spring_cloud_active_deployment", "azurerm_spring_cloud_api_portal", @@ -1253,6 +1264,7 @@ "azurerm_firewall_policy", "azurerm_function_app", "azurerm_function_app_host_keys", + "azurerm_graph_services_account", "azurerm_hdinsight_cluster", "azurerm_healthcare_dicom_service", "azurerm_healthcare_fhir_service", @@ -1306,6 +1318,7 @@ "azurerm_managed_application_definition", "azurerm_managed_disk", "azurerm_managed_disks", + "azurerm_managed_redis", "azurerm_management_group", "azurerm_management_group_template_deployment", "azurerm_maps_account", @@ -1367,12 +1380,16 @@ "azurerm_oracle_autonomous_database", "azurerm_oracle_autonomous_database_backup", "azurerm_oracle_autonomous_database_backups", + "azurerm_oracle_autonomous_database_clone_from_backup", + "azurerm_oracle_autonomous_database_clone_from_database", "azurerm_oracle_cloud_vm_cluster", "azurerm_oracle_db_nodes", "azurerm_oracle_db_servers", "azurerm_oracle_db_system_shapes", "azurerm_oracle_exadata_infrastructure", + "azurerm_oracle_exascale_database_storage_vault", "azurerm_oracle_gi_versions", + "azurerm_oracle_resource_anchor", "azurerm_orchestrated_virtual_machine_scale_set", "azurerm_palo_alto_local_rulestack", "azurerm_platform_image", @@ -1443,7 +1460,6 @@ "azurerm_site_recovery_replication_recovery_plan", "azurerm_snapshot", "azurerm_source_control_token", - "azurerm_spatial_anchors_account", "azurerm_spring_cloud_app", "azurerm_spring_cloud_service", "azurerm_ssh_public_key", diff --git a/src/parse/google-members.json b/src/parse/google-members.json index 187affeb..ec006955 100755 --- a/src/parse/google-members.json +++ b/src/parse/google-members.json @@ -38,16 +38,19 @@ "google_api_gateway_gateway_iam_policy", "google_apigee_addons_config", "google_apigee_api", + "google_apigee_api_deployment", "google_apigee_api_product", "google_apigee_app_group", "google_apigee_control_plane_access", "google_apigee_developer", + "google_apigee_developer_app", "google_apigee_dns_zone", "google_apigee_env_keystore", "google_apigee_envgroup", "google_apigee_envgroup_attachment", "google_apigee_environment", "google_apigee_environment_addons_config", + "google_apigee_environment_api_revision_deployment", "google_apigee_environment_iam_binding", "google_apigee_environment_iam_member", "google_apigee_environment_iam_policy", @@ -178,6 +181,13 @@ "google_certificate_manager_certificate_map_entry", "google_certificate_manager_dns_authorization", "google_certificate_manager_trust_config", + "google_ces_agent", + "google_ces_app", + "google_ces_deployment", + "google_ces_example", + "google_ces_guardrail", + "google_ces_tool", + "google_ces_toolset", "google_chronicle_data_access_label", "google_chronicle_data_access_scope", "google_chronicle_reference_list", @@ -211,6 +221,9 @@ "google_cloud_run_v2_worker_pool_iam_member", "google_cloud_run_v2_worker_pool_iam_policy", "google_cloud_scheduler_job", + "google_cloud_security_compliance_cloud_control", + "google_cloud_security_compliance_framework", + "google_cloud_security_compliance_framework_deployment", "google_cloud_tasks_queue", "google_cloud_tasks_queue_iam_binding", "google_cloud_tasks_queue_iam_member", @@ -363,6 +376,7 @@ "google_compute_region_disk_iam_member", "google_compute_region_disk_iam_policy", "google_compute_region_disk_resource_policy_attachment", + "google_compute_region_health_aggregation_policy", "google_compute_region_health_check", "google_compute_region_instance_group_manager", "google_compute_region_instance_template", @@ -495,6 +509,7 @@ "google_dataplex_entry_group_iam_binding", "google_dataplex_entry_group_iam_member", "google_dataplex_entry_group_iam_policy", + "google_dataplex_entry_link", "google_dataplex_entry_type", "google_dataplex_entry_type_iam_binding", "google_dataplex_entry_type_iam_member", @@ -577,14 +592,19 @@ "google_dialogflow_fulfillment", "google_dialogflow_intent", "google_discovery_engine_acl_config", + "google_discovery_engine_assistant", "google_discovery_engine_chat_engine", "google_discovery_engine_cmek_config", + "google_discovery_engine_control", + "google_discovery_engine_data_connector", "google_discovery_engine_data_store", + "google_discovery_engine_license_config", "google_discovery_engine_recommendation_engine", "google_discovery_engine_schema", "google_discovery_engine_search_engine", "google_discovery_engine_sitemap", "google_discovery_engine_target_site", + "google_discovery_engine_user_store", "google_dns_managed_zone", "google_dns_managed_zone_iam_binding", "google_dns_managed_zone_iam_member", @@ -654,6 +674,7 @@ "google_firestore_document", "google_firestore_field", "google_firestore_index", + "google_firestore_user_creds", "google_folder", "google_folder_access_approval_settings", "google_folder_iam_audit_config", @@ -747,6 +768,7 @@ "google_iam_workforce_pool_iam_policy", "google_iam_workforce_pool_provider", "google_iam_workforce_pool_provider_key", + "google_iam_workforce_pool_provider_scim_tenant", "google_iam_workload_identity_pool", "google_iam_workload_identity_pool_iam_binding", "google_iam_workload_identity_pool_iam_member", @@ -820,12 +842,15 @@ "google_kms_ekm_connection_iam_binding", "google_kms_ekm_connection_iam_member", "google_kms_ekm_connection_iam_policy", + "google_kms_folder_kaj_policy_config", "google_kms_key_handle", "google_kms_key_ring", "google_kms_key_ring_iam_binding", "google_kms_key_ring_iam_member", "google_kms_key_ring_iam_policy", "google_kms_key_ring_import_job", + "google_kms_organization_kaj_policy_config", + "google_kms_project_kaj_policy_config", "google_kms_secret_ciphertext", "google_logging_billing_account_bucket_config", "google_logging_billing_account_exclusion", @@ -877,6 +902,7 @@ "google_netapp_backup", "google_netapp_backup_policy", "google_netapp_backup_vault", + "google_netapp_host_group", "google_netapp_kmsconfig", "google_netapp_storage_pool", "google_netapp_volume", @@ -900,6 +926,7 @@ "google_network_security_authz_policy", "google_network_security_backend_authentication_config", "google_network_security_client_tls_policy", + "google_network_security_dns_threat_detector", "google_network_security_firewall_endpoint", "google_network_security_firewall_endpoint_association", "google_network_security_gateway_security_policy", @@ -910,6 +937,7 @@ "google_network_security_intercept_endpoint_group_association", "google_network_security_mirroring_deployment", "google_network_security_mirroring_deployment_group", + "google_network_security_mirroring_endpoint", "google_network_security_mirroring_endpoint_group", "google_network_security_mirroring_endpoint_group_association", "google_network_security_security_profile", @@ -928,6 +956,7 @@ "google_network_services_lb_route_extension", "google_network_services_lb_traffic_extension", "google_network_services_mesh", + "google_network_services_multicast_domain", "google_network_services_service_binding", "google_network_services_service_lb_policies", "google_network_services_tcp_route", @@ -942,9 +971,12 @@ "google_notebooks_runtime_iam_binding", "google_notebooks_runtime_iam_member", "google_notebooks_runtime_iam_policy", + "google_observability_trace_scope", "google_oracle_database_autonomous_database", "google_oracle_database_cloud_exadata_infrastructure", "google_oracle_database_cloud_vm_cluster", + "google_oracle_database_db_system", + "google_oracle_database_exascale_db_storage_vault", "google_oracle_database_odb_network", "google_oracle_database_odb_subnet", "google_org_policy_custom_constraint", @@ -979,6 +1011,7 @@ "google_privateca_certificate_template_iam_member", "google_privateca_certificate_template_iam_policy", "google_privileged_access_manager_entitlement", + "google_privileged_access_manager_settings", "google_project", "google_project_access_approval_settings", "google_project_default_service_accounts", @@ -1021,7 +1054,10 @@ "google_runtimeconfig_config_iam_policy", "google_runtimeconfig_variable", "google_saas_runtime_release", + "google_saas_runtime_rollout_kind", "google_saas_runtime_saas", + "google_saas_runtime_tenant", + "google_saas_runtime_unit", "google_saas_runtime_unit_kind", "google_scc_event_threat_detection_custom_module", "google_scc_folder_custom_module", @@ -1159,6 +1195,7 @@ "google_tpu_v2_vm", "google_transcoder_job", "google_transcoder_job_template", + "google_vertex_ai_cache_config", "google_vertex_ai_dataset", "google_vertex_ai_deployment_resource_pool", "google_vertex_ai_endpoint", @@ -1193,6 +1230,7 @@ "google_vertex_ai_index_endpoint_deployed_index", "google_vertex_ai_metadata_store", "google_vertex_ai_rag_engine_config", + "google_vertex_ai_reasoning_engine", "google_vertex_ai_tensorboard", "google_vmwareengine_cluster", "google_vmwareengine_external_access_rule", @@ -1241,8 +1279,12 @@ "google_artifact_registry_docker_images", "google_artifact_registry_locations", "google_artifact_registry_maven_artifact", + "google_artifact_registry_maven_artifacts", "google_artifact_registry_npm_package", + "google_artifact_registry_npm_packages", + "google_artifact_registry_packages", "google_artifact_registry_python_package", + "google_artifact_registry_python_packages", "google_artifact_registry_repositories", "google_artifact_registry_repository", "google_artifact_registry_repository_iam_policy", @@ -1287,6 +1329,7 @@ "google_cloud_identity_group_memberships", "google_cloud_identity_group_transitive_memberships", "google_cloud_identity_groups", + "google_cloud_identity_policy", "google_cloud_quotas_quota_info", "google_cloud_quotas_quota_infos", "google_cloud_run_locations", @@ -1362,6 +1405,8 @@ "google_compute_region_ssl_certificate", "google_compute_regions", "google_compute_reservation", + "google_compute_reservation_block", + "google_compute_reservation_sub_block", "google_compute_resource_policy", "google_compute_router", "google_compute_router_nat", diff --git a/src/scan.go b/src/scan.go index f7ca8117..6b6d9515 100644 --- a/src/scan.go +++ b/src/scan.go @@ -2,12 +2,15 @@ package pike import ( "context" + "errors" "fmt" "os" "os/exec" "path" "path/filepath" "strings" + "sync" + "time" "github.com/hashicorp/go-version" "github.com/hashicorp/hc-install/product" @@ -18,7 +21,16 @@ import ( const tfVersion = "1.5.4" -var dotTfModules = path.Join(".terraform", "modules") +const ( + modulesJSON = "modules.json" + dsStore = ".DS_Store" + dotTfModules = ".terraform/modules" +) + +var ( + terraformMutex sync.Mutex + initMutex sync.Map // per-directory mutex +) type emptyIACError struct{} @@ -184,23 +196,36 @@ func WriteOutput(outPolicy OutputPolicy, outputType string, scanPath string, out } // Init can download and install terraform if required and then terraform init your specified directory. + func Init(dirName string) (*string, []string, error) { + // Per-directory locking + dirMutex, _ := initMutex.LoadOrStore(dirName, &sync.Mutex{}) + mutex := dirMutex.(*sync.Mutex) + mutex.Lock() + defer mutex.Unlock() + tfPath, err := LocateTerraform() if err != nil { return nil, nil, &locateTerraformError{err} } tf, err := tfexec.NewTerraform(dirName, tfPath) + if err != nil { return nil, nil, &terraformExecError{err} } - err = tf.Init(context.Background(), tfexec.Upgrade(true)) + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Minute) + defer cancel() + err = tf.Init(ctx, tfexec.Upgrade(true)) if err != nil { + if errors.Is(context.DeadlineExceeded, ctx.Err()) { + return nil, nil, fmt.Errorf("terraform init timed out after 10 minutes: %w", err) + } return nil, nil, &terraformInitError{err} } - log.Printf("terraform init at %s", dirName) + log.Info().Msgf("terraform init at %s", dirName) modulesDir := path.Join(dirName, dotTfModules) modules, err := os.ReadDir(modulesDir) @@ -225,11 +250,14 @@ func Init(dirName string) (*string, []string, error) { // LocateTerraform finds the Terraform executable or installs it. func LocateTerraform() (string, error) { + terraformMutex.Lock() + defer terraformMutex.Unlock() + tfPath, err := exec.LookPath(terraform) // if you don't have tf installed, we have to install it if err != nil || tfPath == "" { - log.Printf("installing Terraform %s\n", tfVersion) + log.Info().Msgf("installing Terraform %s\n", tfVersion) installer := &releases.ExactVersion{ Product: product.Terraform, Version: version.Must(version.NewVersion(tfVersion)), @@ -247,18 +275,20 @@ func LocateTerraform() (string, error) { } // MakePolicy does the guts of determining a policy from code. -func MakePolicy(dirName string, file *string, init bool, EnableResources bool, provider string, policyName string) (OutputPolicy, error) { - var ( - output OutputPolicy - ) +func MakePolicy(dirName string, file *string, init bool, enableResources bool, provider string, policyName string) (OutputPolicy, error) { + // Validate inputs early + if dirName == "" && file == nil { + return OutputPolicy{}, errors.New("either directory or file should be be set") + } - permissionsBag, err := makePermissionBag(dirName, file, init, provider) + var output OutputPolicy + permissionsBag, err := makePermissionBag(dirName, file, init, provider) if err != nil { - return output, err + return output, fmt.Errorf("failed to create permission bag: %w", err) } - output, err = GetPolicy(permissionsBag, EnableResources, policyName) + output, err = GetPolicy(permissionsBag, enableResources, policyName) if err != nil { return output, &getPolicyError{err: err} } @@ -266,14 +296,22 @@ func MakePolicy(dirName string, file *string, init bool, EnableResources bool, p return output, nil } +// Extract common absolute path logic +func getAbsolutePath(path string) (string, error) { + absPath, err := filepath.Abs(path) + if err != nil { + return "", &absolutePathError{directory: path, err: err} + } + return absPath, nil +} func makePermissionBag(dirName string, file *string, init bool, provider string) (Sorted, error) { var files []string if file == nil { - fullPath, err := filepath.Abs(dirName) + fullPath, err := getAbsolutePath(dirName) if err != nil { - return Sorted{}, &absolutePathError{directory: dirName, err: err} + return Sorted{}, err } if init { @@ -292,9 +330,9 @@ func makePermissionBag(dirName string, file *string, init bool, provider string) return Sorted{}, &getTFError{directory: fullPath, err: err} } } else { - myFile, err := filepath.Abs(*file) + myFile, err := getAbsolutePath(*file) if err != nil { - return Sorted{}, &absolutePathError{directory: *file, err: err} + return Sorted{}, err } // is this a tfFile? @@ -310,22 +348,34 @@ func makePermissionBag(dirName string, file *string, init bool, provider string) } var resources []ResourceV2 + var failedFiles []string + var criticalErrors []error for _, tfFile := range files { resource, err := GetResources(tfFile, dirName) if err != nil { - // parse the other files - log.Print(err) + failedFiles = append(failedFiles, tfFile) + criticalErrors = append(criticalErrors, fmt.Errorf("failed to parse %s: %w", tfFile, err)) + continue } if resource != nil { resources = append(resources, resource...) } } + + // Fail fast if too many critical files failed + if len(criticalErrors) > 0 { + if len(failedFiles) > len(files)/2 { // More than 50% failed + return Sorted{}, fmt.Errorf("critical parsing failures in %d/%d files: %v", + len(failedFiles), len(files), criticalErrors) + } + log.Warn().Int("failed_files", len(failedFiles)).Msg("some terraform files failed to parse") + } + permissionsBag := GetPermissionBag(resources, provider) return permissionsBag, nil } - func GetPermissionBag(resources []ResourceV2, provider string) Sorted { var permissionBag Sorted var newPerms Sorted @@ -418,3 +468,16 @@ func StringInSlice(a string, list []string) bool { func GetHCLType(resourceName string) string { return strings.Split(resourceName, "_")[0] } + +const ( + maxFiles = 1000 + maxFileSize = 10 * 1024 * 1024 // 10MB + maxResources = 50000 +) + +func validateLimits(files []string) error { + if len(files) > maxFiles { + return fmt.Errorf("too many files: %d > %d", len(files), maxFiles) + } + return nil +} diff --git a/src/scan_test.go b/src/scan_test.go index 039b21e3..e575bda6 100644 --- a/src/scan_test.go +++ b/src/scan_test.go @@ -19,16 +19,16 @@ func TestScan(t *testing.T) { write bool } - testpath, _ := filepath.Abs("../terraform/aws/backup") + testPath, _ := filepath.Abs("../terraform/aws/backup") tests := []struct { name string args args wantErr bool }{ - {"aws", args{testpath, "json", false}, false}, - {"aws-out", args{testpath, "terraform", true}, false}, - {"google", args{testpath, "json", false}, false}, + {"aws", args{testPath, "json", false}, false}, + {"aws-out", args{testPath, "terraform", true}, false}, + {"google", args{testPath, "json", false}, false}, } for _, tt := range tests { diff --git a/terraform/aws/aws_prometheus_query_logging_configuration.tf b/terraform/aws/aws_prometheus_query_logging_configuration.tf deleted file mode 100644 index 91ee843b..00000000 --- a/terraform/aws/aws_prometheus_query_logging_configuration.tf +++ /dev/null @@ -1,25 +0,0 @@ -resource "aws_prometheus_workspace" "example" { - provider = aws.central - alias = "example" -} - -resource "aws_cloudwatch_log_group" "example" { - provider = aws.central - name = "/aws/prometheus/query-logs/example" -} - -resource "aws_prometheus_query_logging_configuration" "example" { - provider = aws.central - workspace_id = aws_prometheus_workspace.example.id - - destination { - cloudwatch_logs { - log_group_arn = "${aws_cloudwatch_log_group.example.arn}:*" - } - - filters { - qsp_threshold = 1000 - } - } - -} diff --git a/terraform/aws/backup/data.aws_appconfig_application.tf b/terraform/aws/backup/data.aws_appconfig_application.tf new file mode 100644 index 00000000..c8542521 --- /dev/null +++ b/terraform/aws/backup/data.aws_appconfig_application.tf @@ -0,0 +1,7 @@ +data "aws_appconfig_application" "pike" { + name = "pike" +} + +output "aws_appconfig_application" { + value = data.aws_appconfig_application.pike +} diff --git a/terraform/aws/backup/data.aws_billing_views.tf b/terraform/aws/backup/data.aws_billing_views.tf new file mode 100644 index 00000000..9a26a7b0 --- /dev/null +++ b/terraform/aws/backup/data.aws_billing_views.tf @@ -0,0 +1,6 @@ +data "aws_billing_views" "pike" { +} + +output "aws_billing_views" { + value = data.aws_billing_views.pike +} diff --git a/terraform/aws/backup/data.aws_ecrpublic_images.tf b/terraform/aws/backup/data.aws_ecrpublic_images.tf new file mode 100644 index 00000000..65249b2b --- /dev/null +++ b/terraform/aws/backup/data.aws_ecrpublic_images.tf @@ -0,0 +1,8 @@ +data "aws_ecrpublic_images" "pike" { + provider = aws.central + repository_name = "pike" +} + +output "aws_ecrpublic_images" { + value = data.aws_ecrpublic_images.pike +} diff --git a/terraform/aws/backup/data.aws_media_convert_queue.tf b/terraform/aws/backup/data.aws_media_convert_queue.tf new file mode 100644 index 00000000..658e5239 --- /dev/null +++ b/terraform/aws/backup/data.aws_media_convert_queue.tf @@ -0,0 +1,7 @@ +data "aws_media_convert_queue" "pike" { + id = "pike" +} + +output "aws_media_convert_queue" { + value = data.aws_media_convert_queue.pike +} diff --git a/terraform/aws/backup/data.aws_memorydb_acl.tf b/terraform/aws/backup/data.aws_memorydb_acl.tf new file mode 100644 index 00000000..815bafc1 --- /dev/null +++ b/terraform/aws/backup/data.aws_memorydb_acl.tf @@ -0,0 +1,7 @@ +data "aws_memorydb_acl" "pike" { + name = "pike" +} + +output "aws_memorydb_acl" { + value = data.aws_memorydb_acl.pike +} diff --git a/terraform/aws/backup/data.aws_memorydb_cluster.tf b/terraform/aws/backup/data.aws_memorydb_cluster.tf new file mode 100644 index 00000000..3bae3c0b --- /dev/null +++ b/terraform/aws/backup/data.aws_memorydb_cluster.tf @@ -0,0 +1,7 @@ +data "aws_memorydb_cluster" "pike" { + name = "pike" +} + +output "aws_memorydb_cluster" { + value = data.aws_memorydb_cluster.pike +} diff --git a/terraform/aws/backup/data.aws_memorydb_parameter_group.tf b/terraform/aws/backup/data.aws_memorydb_parameter_group.tf new file mode 100644 index 00000000..2fbcab25 --- /dev/null +++ b/terraform/aws/backup/data.aws_memorydb_parameter_group.tf @@ -0,0 +1,7 @@ +data "aws_memorydb_parameter_group" "pike" { + name = "pike" +} + +output "aws_memorydb_parameter_group" { + value = data.aws_memorydb_parameter_group.pike +} diff --git a/terraform/aws/backup/data.aws_memorydb_snapshot.tf b/terraform/aws/backup/data.aws_memorydb_snapshot.tf new file mode 100644 index 00000000..9d3a1cd0 --- /dev/null +++ b/terraform/aws/backup/data.aws_memorydb_snapshot.tf @@ -0,0 +1,7 @@ +data "aws_memorydb_snapshot" "pike" { + name = "pike" +} + +output "aws_memorydb_snapshot" { + value = data.aws_memorydb_snapshot.pike +} diff --git a/terraform/aws/backup/data.aws_memorydb_subnet_group.tf b/terraform/aws/backup/data.aws_memorydb_subnet_group.tf new file mode 100644 index 00000000..3ba8ea58 --- /dev/null +++ b/terraform/aws/backup/data.aws_memorydb_subnet_group.tf @@ -0,0 +1,7 @@ +data "aws_memorydb_subnet_group" "pike" { + name = "pike" +} + +output "aws_memorydb_subnet_group" { + value = data.aws_memorydb_subnet_group.pike +} diff --git a/terraform/aws/backup/data.aws_memorydb_user.tf b/terraform/aws/backup/data.aws_memorydb_user.tf new file mode 100644 index 00000000..7e65663f --- /dev/null +++ b/terraform/aws/backup/data.aws_memorydb_user.tf @@ -0,0 +1,7 @@ +data "aws_memorydb_user" "pike" { + user_name = "pike" +} + +output "aws_memorydb_user" { + value = data.aws_memorydb_user.pike +} diff --git a/terraform/aws/backup/data.aws_odb_cloud_autonomous_vm_cluster.tf b/terraform/aws/backup/data.aws_odb_cloud_autonomous_vm_cluster.tf new file mode 100644 index 00000000..bff3a5c2 --- /dev/null +++ b/terraform/aws/backup/data.aws_odb_cloud_autonomous_vm_cluster.tf @@ -0,0 +1,7 @@ +data "aws_odb_cloud_autonomous_vm_cluster" "pike" { + id = "pike" +} + +output "aws_odb_cloud_autonomous_vm_cluster" { + value = data.aws_odb_cloud_autonomous_vm_cluster.pike +} diff --git a/terraform/aws/backup/data.aws_odb_cloud_autonomous_vm_clusters.tf b/terraform/aws/backup/data.aws_odb_cloud_autonomous_vm_clusters.tf new file mode 100644 index 00000000..ecd34ea9 --- /dev/null +++ b/terraform/aws/backup/data.aws_odb_cloud_autonomous_vm_clusters.tf @@ -0,0 +1,6 @@ +data "aws_odb_cloud_autonomous_vm_clusters" "pike" { +} + +output "aws_odb_cloud_autonomous_vm_clusters" { + value = data.aws_odb_cloud_autonomous_vm_clusters.pike +} diff --git a/terraform/aws/backup/data.aws_odb_cloud_exadata_infrastructure.tf b/terraform/aws/backup/data.aws_odb_cloud_exadata_infrastructure.tf new file mode 100644 index 00000000..17bf23f2 --- /dev/null +++ b/terraform/aws/backup/data.aws_odb_cloud_exadata_infrastructure.tf @@ -0,0 +1,7 @@ +data "aws_odb_cloud_exadata_infrastructure" "pike" { + id = "pike" +} + +output "aws_odb_cloud_exadata_infrastructure" { + value = data.aws_odb_cloud_exadata_infrastructure.pike +} diff --git a/terraform/aws/backup/data.aws_odb_cloud_exadata_infrastructures.tf b/terraform/aws/backup/data.aws_odb_cloud_exadata_infrastructures.tf new file mode 100644 index 00000000..5cda9dee --- /dev/null +++ b/terraform/aws/backup/data.aws_odb_cloud_exadata_infrastructures.tf @@ -0,0 +1,6 @@ +data "aws_odb_cloud_exadata_infrastructures" "pike" { +} + +output "aws_odb_cloud_exadata_infrastructures" { + value = data.aws_odb_cloud_exadata_infrastructures.pike +} diff --git a/terraform/aws/backup/data.aws_odb_cloud_vm_cluster.tf b/terraform/aws/backup/data.aws_odb_cloud_vm_cluster.tf new file mode 100644 index 00000000..cf3e715f --- /dev/null +++ b/terraform/aws/backup/data.aws_odb_cloud_vm_cluster.tf @@ -0,0 +1,7 @@ +data "aws_odb_cloud_vm_cluster" "pike" { + id = "pike" +} + +output "aws_odb_cloud_vm_cluster" { + value = data.aws_odb_cloud_vm_cluster.pike +} diff --git a/terraform/aws/backup/data.aws_odb_cloud_vm_clusters.tf b/terraform/aws/backup/data.aws_odb_cloud_vm_clusters.tf new file mode 100644 index 00000000..dd023656 --- /dev/null +++ b/terraform/aws/backup/data.aws_odb_cloud_vm_clusters.tf @@ -0,0 +1,6 @@ +data "aws_odb_cloud_vm_clusters" "pike" { +} + +output "aws_odb_cloud_vm_clusters" { + value = data.aws_odb_cloud_vm_clusters.pike +} diff --git a/terraform/aws/backup/data.aws_odb_db_node.tf b/terraform/aws/backup/data.aws_odb_db_node.tf new file mode 100644 index 00000000..961dc303 --- /dev/null +++ b/terraform/aws/backup/data.aws_odb_db_node.tf @@ -0,0 +1,8 @@ +data "aws_odb_db_node" "pike" { + cloud_vm_cluster_id = "pike" + id = "pike" +} + +output "aws_odb_db_node" { + value = data.aws_odb_db_node.pike +} diff --git a/terraform/aws/backup/data.aws_odb_db_nodes.tf b/terraform/aws/backup/data.aws_odb_db_nodes.tf new file mode 100644 index 00000000..b258f147 --- /dev/null +++ b/terraform/aws/backup/data.aws_odb_db_nodes.tf @@ -0,0 +1,7 @@ +data "aws_odb_db_nodes" "pike" { + cloud_vm_cluster_id = "pike" +} + +output "aws_odb_db_nodes" { + value = data.aws_odb_db_nodes.pike +} diff --git a/terraform/aws/backup/data.aws_odb_db_server.tf b/terraform/aws/backup/data.aws_odb_db_server.tf new file mode 100644 index 00000000..94202db0 --- /dev/null +++ b/terraform/aws/backup/data.aws_odb_db_server.tf @@ -0,0 +1,8 @@ +data "aws_odb_db_server" "pike" { + id = "pike" + cloud_exadata_infrastructure_id = "pike" +} + +output "aws_odb_db_server" { + value = data.aws_odb_db_server.pike +} diff --git a/terraform/aws/backup/data.aws_odb_db_servers.tf b/terraform/aws/backup/data.aws_odb_db_servers.tf new file mode 100644 index 00000000..ddb1cd3d --- /dev/null +++ b/terraform/aws/backup/data.aws_odb_db_servers.tf @@ -0,0 +1,7 @@ +data "aws_odb_db_servers" "pike" { + cloud_exadata_infrastructure_id = "pike" +} + +output "aws_odb_db_servers" { + value = data.aws_odb_db_servers.pike +} diff --git a/terraform/aws/backup/data.aws_odb_db_system_shapes.tf b/terraform/aws/backup/data.aws_odb_db_system_shapes.tf new file mode 100644 index 00000000..5f9c5721 --- /dev/null +++ b/terraform/aws/backup/data.aws_odb_db_system_shapes.tf @@ -0,0 +1,6 @@ +data "aws_odb_db_system_shapes" "pike" { +} + +output "aws_odb_db_system_shapes" { + value = data.aws_odb_db_system_shapes.pike +} diff --git a/terraform/aws/backup/data.aws_odb_gi_versions.tf b/terraform/aws/backup/data.aws_odb_gi_versions.tf new file mode 100644 index 00000000..a51be88f --- /dev/null +++ b/terraform/aws/backup/data.aws_odb_gi_versions.tf @@ -0,0 +1,6 @@ +data "aws_odb_gi_versions" "pike" { +} + +output "aws_odb_gi_versions" { + value = data.aws_odb_gi_versions.pike +} diff --git a/terraform/aws/backup/data.aws_odb_network.tf b/terraform/aws/backup/data.aws_odb_network.tf new file mode 100644 index 00000000..89fa0143 --- /dev/null +++ b/terraform/aws/backup/data.aws_odb_network.tf @@ -0,0 +1,7 @@ +data "aws_odb_network" "pike" { + id = "pike" +} + +output "aws_odb_network" { + value = data.aws_odb_network.pike +} diff --git a/terraform/aws/backup/data.aws_odb_network_peering_connection.tf b/terraform/aws/backup/data.aws_odb_network_peering_connection.tf new file mode 100644 index 00000000..404a8924 --- /dev/null +++ b/terraform/aws/backup/data.aws_odb_network_peering_connection.tf @@ -0,0 +1,7 @@ +data "aws_odb_network_peering_connection" "pike" { + id = "pike" +} + +output "aws_odb_network_peering_connection" { + value = data.aws_odb_network_peering_connection.pike +} diff --git a/terraform/aws/backup/data.aws_odb_network_peering_connections.tf b/terraform/aws/backup/data.aws_odb_network_peering_connections.tf new file mode 100644 index 00000000..a65eab5b --- /dev/null +++ b/terraform/aws/backup/data.aws_odb_network_peering_connections.tf @@ -0,0 +1,7 @@ +data "aws_odb_network_peering_connections" "pike" { + +} + +output "aws_odb_network_peering_connections" { + value = data.aws_odb_network_peering_connections.pike +} diff --git a/terraform/aws/backup/data.aws_odb_networks.tf b/terraform/aws/backup/data.aws_odb_networks.tf new file mode 100644 index 00000000..8502efe9 --- /dev/null +++ b/terraform/aws/backup/data.aws_odb_networks.tf @@ -0,0 +1,6 @@ +data "aws_odb_networks" "pike" { +} + +output "aws_odb_networks" { + value = data.aws_odb_networks.pike +} diff --git a/terraform/aws/backup/data.aws_rds_global_cluster.tf b/terraform/aws/backup/data.aws_rds_global_cluster.tf new file mode 100644 index 00000000..98ed1416 --- /dev/null +++ b/terraform/aws/backup/data.aws_rds_global_cluster.tf @@ -0,0 +1,7 @@ +data "aws_rds_global_cluster" "pike" { + identifier = "pike" +} + +output "aws_rds_global_cluster" { + value = data.aws_rds_global_cluster.pike +} diff --git a/terraform/aws/backup/data.aws_securityhub_standards_control_associations.tf b/terraform/aws/backup/data.aws_securityhub_standards_control_associations.tf new file mode 100644 index 00000000..9a3f4cd0 --- /dev/null +++ b/terraform/aws/backup/data.aws_securityhub_standards_control_associations.tf @@ -0,0 +1,7 @@ +data "aws_securityhub_standards_control_associations" "pike" { + security_control_id = "pike" +} + +output "aws_securityhub_standards_control_associations" { + value = data.aws_securityhub_standards_control_associations.pike +} diff --git a/terraform/aws/backup/data.aws_vpn_connection.tf b/terraform/aws/backup/data.aws_vpn_connection.tf new file mode 100644 index 00000000..2dfc552c --- /dev/null +++ b/terraform/aws/backup/data.aws_vpn_connection.tf @@ -0,0 +1,7 @@ +data "aws_vpn_connection" "pike" { + vpn_connection_id = "pike" +} + +output "aws_vpn_connection" { + value = data.aws_vpn_connection.pike +} diff --git a/terraform/aws/backup/data.aws_workspaces_workspace.tf b/terraform/aws/backup/data.aws_workspaces_workspace.tf new file mode 100644 index 00000000..675ac913 --- /dev/null +++ b/terraform/aws/backup/data.aws_workspaces_workspace.tf @@ -0,0 +1,8 @@ +data "aws_workspaces_workspace" "pike" { + workspace_id = "ws-cj5xcxsz5" +} + + +output "aws_workspaces_workspace" { + value = data.aws_workspaces_workspace.pike +} diff --git a/terraform/aws/role/aws_iam_policy.basic.tf b/terraform/aws/role/aws_iam_policy.basic.tf index de0e023c..725dd39a 100644 --- a/terraform/aws/role/aws_iam_policy.basic.tf +++ b/terraform/aws/role/aws_iam_policy.basic.tf @@ -7,8 +7,13 @@ resource "aws_iam_policy" "basic" { "Sid" : "VisualEditor0", "Effect" : "Allow", "Action" : [ - "ecr:ListImages", - "s3:ListAccessPoints" + //aws_vpn_connection + "ec2:DescribeVpnConnections", + //aws_rds_global_cluster + "rds:DescribeGlobalClusters", + //aws_ecrpublic_images + "ecr-public:DescribeImages" + ], "Resource" : [ "*" diff --git a/terraform/google/backup/data.google_artifact_registry_maven_artifact.tf b/terraform/google/backup/data.google_artifact_registry_maven_artifact.tf new file mode 100644 index 00000000..d965f619 --- /dev/null +++ b/terraform/google/backup/data.google_artifact_registry_maven_artifact.tf @@ -0,0 +1,10 @@ +data "google_artifact_registry_maven_artifact" "pike" { + artifact_id = "pike" + group_id = "pike" + location = "pike" + repository_id = "pike" +} + +output "google_artifact_registry_maven_artifact" { + value = data.google_artifact_registry_maven_artifact.pike +} diff --git a/terraform/google/backup/data.google_artifact_registry_maven_artifacts.tf b/terraform/google/backup/data.google_artifact_registry_maven_artifacts.tf new file mode 100644 index 00000000..0195402d --- /dev/null +++ b/terraform/google/backup/data.google_artifact_registry_maven_artifacts.tf @@ -0,0 +1,8 @@ +data "google_artifact_registry_maven_artifacts" "pike" { + repository_id = "pike" + location = "us-central1" +} + +output "google_artifact_registry_maven_artifacts" { + value = data.google_artifact_registry_maven_artifacts.pike +} diff --git a/terraform/google/backup/data.google_artifact_registry_npm_packages.tf b/terraform/google/backup/data.google_artifact_registry_npm_packages.tf new file mode 100644 index 00000000..2fcce935 --- /dev/null +++ b/terraform/google/backup/data.google_artifact_registry_npm_packages.tf @@ -0,0 +1,8 @@ +data "google_artifact_registry_npm_packages" "pike" { + repository_id = "pike" + location = "us-central1" +} + +output "google_artifact_registry_npm_packages" { + value = data.google_artifact_registry_npm_packages.pike +} diff --git a/terraform/google/backup/data.google_artifact_registry_packages.tf b/terraform/google/backup/data.google_artifact_registry_packages.tf new file mode 100644 index 00000000..c630d612 --- /dev/null +++ b/terraform/google/backup/data.google_artifact_registry_packages.tf @@ -0,0 +1,8 @@ +data "google_artifact_registry_packages" "pike" { + location = "us-central1" + repository_id = "pike" +} + +output "google_artifact_registry_packages" { + value = data.google_artifact_registry_packages.pike +} diff --git a/terraform/google/backup/data.google_compute_interconnect_location.tf b/terraform/google/backup/data.google_compute_interconnect_location.tf new file mode 100644 index 00000000..170fcb73 --- /dev/null +++ b/terraform/google/backup/data.google_compute_interconnect_location.tf @@ -0,0 +1,8 @@ +data "google_compute_interconnect_location" "pike" { + provider = google-beta + name = "pike" +} + +output "google_compute_interconnect_location" { + value = data.google_compute_interconnect_location.pike +} diff --git a/terraform/google/backup/data.google_compute_interconnect_locations.tf b/terraform/google/backup/data.google_compute_interconnect_locations.tf new file mode 100644 index 00000000..5062b1e8 --- /dev/null +++ b/terraform/google/backup/data.google_compute_interconnect_locations.tf @@ -0,0 +1,7 @@ +data "google_compute_interconnect_locations" "pike" { + provider = google-beta +} + +output "google_compute_interconnect_locations" { + value = data.google_compute_interconnect_locations.pike +} diff --git a/terraform/google/backup/google_gemini_code_repository_index.tf b/terraform/google/backup/google_gemini_code_repository_index.tf new file mode 100644 index 00000000..026330be --- /dev/null +++ b/terraform/google/backup/google_gemini_code_repository_index.tf @@ -0,0 +1 @@ +resource "google_gemini_code_repository_index" "pike" {} diff --git a/terraform/google/backup/google_gemini_code_tools_setting.tf b/terraform/google/backup/google_gemini_code_tools_setting.tf new file mode 100644 index 00000000..9ce6b776 --- /dev/null +++ b/terraform/google/backup/google_gemini_code_tools_setting.tf @@ -0,0 +1 @@ +resource "google_gemini_code_tools_setting" "pike" {} diff --git a/terraform/google/backup/google_gemini_code_tools_setting_binding.tf b/terraform/google/backup/google_gemini_code_tools_setting_binding.tf new file mode 100644 index 00000000..07f71a46 --- /dev/null +++ b/terraform/google/backup/google_gemini_code_tools_setting_binding.tf @@ -0,0 +1 @@ +resource "google_gemini_code_tools_setting_binding" "pike" {} diff --git a/terraform/google/backup/google_gemini_data_sharing_with_google_setting.tf b/terraform/google/backup/google_gemini_data_sharing_with_google_setting.tf new file mode 100644 index 00000000..578c6c56 --- /dev/null +++ b/terraform/google/backup/google_gemini_data_sharing_with_google_setting.tf @@ -0,0 +1 @@ +resource "google_gemini_data_sharing_with_google_setting" "pike" {} diff --git a/terraform/google/backup/google_gemini_data_sharing_with_google_setting_binding.tf b/terraform/google/backup/google_gemini_data_sharing_with_google_setting_binding.tf new file mode 100644 index 00000000..a2424373 --- /dev/null +++ b/terraform/google/backup/google_gemini_data_sharing_with_google_setting_binding.tf @@ -0,0 +1 @@ +resource "google_gemini_data_sharing_with_google_setting_binding" "pike" {} diff --git a/terraform/google/backup/google_gemini_gemini_gcp_enablement_setting.tf b/terraform/google/backup/google_gemini_gemini_gcp_enablement_setting.tf new file mode 100644 index 00000000..ece968ad --- /dev/null +++ b/terraform/google/backup/google_gemini_gemini_gcp_enablement_setting.tf @@ -0,0 +1 @@ +resource "google_gemini_gemini_gcp_enablement_setting" "pike" {} diff --git a/terraform/google/backup/google_gemini_gemini_gcp_enablement_setting_binding.tf b/terraform/google/backup/google_gemini_gemini_gcp_enablement_setting_binding.tf new file mode 100644 index 00000000..d39ed9c2 --- /dev/null +++ b/terraform/google/backup/google_gemini_gemini_gcp_enablement_setting_binding.tf @@ -0,0 +1 @@ +resource "google_gemini_gemini_gcp_enablement_setting_binding" "pike" {} diff --git a/terraform/google/backup/google_gemini_logging_setting.tf b/terraform/google/backup/google_gemini_logging_setting.tf new file mode 100644 index 00000000..737c6ad5 --- /dev/null +++ b/terraform/google/backup/google_gemini_logging_setting.tf @@ -0,0 +1 @@ +resource "google_gemini_logging_setting" "pike" {} diff --git a/terraform/google/backup/google_gemini_logging_setting_binding.tf b/terraform/google/backup/google_gemini_logging_setting_binding.tf new file mode 100644 index 00000000..4dbe8c0c --- /dev/null +++ b/terraform/google/backup/google_gemini_logging_setting_binding.tf @@ -0,0 +1 @@ +resource "google_gemini_logging_setting_binding" "pike" {} diff --git a/terraform/google/backup/google_gemini_release_channel_setting.tf b/terraform/google/backup/google_gemini_release_channel_setting.tf new file mode 100644 index 00000000..33baf40b --- /dev/null +++ b/terraform/google/backup/google_gemini_release_channel_setting.tf @@ -0,0 +1 @@ +resource "google_gemini_release_channel_setting" "pike" {} diff --git a/terraform/google/backup/google_gemini_release_channel_setting_binding.tf b/terraform/google/backup/google_gemini_release_channel_setting_binding.tf new file mode 100644 index 00000000..ecc410b3 --- /dev/null +++ b/terraform/google/backup/google_gemini_release_channel_setting_binding.tf @@ -0,0 +1 @@ +resource "google_gemini_release_channel_setting_binding" "pike" {} diff --git a/terraform/google/backup/google_gemini_repository_group.tf b/terraform/google/backup/google_gemini_repository_group.tf new file mode 100644 index 00000000..b075d499 --- /dev/null +++ b/terraform/google/backup/google_gemini_repository_group.tf @@ -0,0 +1 @@ +resource "google_gemini_repository_group" "pike" {} diff --git a/terraform/google/backup/google_iap_brand.tf b/terraform/google/backup/google_iap_brand.tf new file mode 100644 index 00000000..4c6ad5c4 --- /dev/null +++ b/terraform/google/backup/google_iap_brand.tf @@ -0,0 +1 @@ +resource "google_iap_brand" "pike" {} diff --git a/terraform/google/backup/google_iap_client.tf b/terraform/google/backup/google_iap_client.tf new file mode 100644 index 00000000..0e6a0f62 --- /dev/null +++ b/terraform/google/backup/google_iap_client.tf @@ -0,0 +1 @@ +resource "google_iap_client" "pike" {} diff --git a/terraform/google/backup/google_iap_settings.tf b/terraform/google/backup/google_iap_settings.tf new file mode 100644 index 00000000..c093ea64 --- /dev/null +++ b/terraform/google/backup/google_iap_settings.tf @@ -0,0 +1,68 @@ +data "google_project" "project" { +} + +resource "google_compute_region_backend_service" "default" { + name = "iap-settings-tf" + region = "us-central1" + health_checks = [google_compute_health_check.default.id] + connection_draining_timeout_sec = 10 + session_affinity = "CLIENT_IP" +} + +resource "google_compute_health_check" "default" { + name = "iap-bs-health-check" + check_interval_sec = 1 + timeout_sec = 1 + + tcp_health_check { + port = "80" + } +} + +resource "google_iap_settings" "iap_settings" { + name = "projects/${data.google_project.project.number}/iap_web/compute-us-central1/services/${google_compute_region_backend_service.default.name}" + access_settings { + identity_sources = ["WORKFORCE_IDENTITY_FEDERATION"] + allowed_domains_settings { + domains = ["test.abc.com"] + enable = true + } + cors_settings { + allow_http_options = true + } + reauth_settings { + method = "SECURE_KEY" + max_age = "305s" + policy_type = "MINIMUM" + } + gcip_settings { + login_page_uri = "https://test.com/?apiKey=abc" + } + oauth_settings { + login_hint = "test" + } + workforce_identity_settings { + workforce_pools = ["wif-pool"] + oauth2 { + client_id = "test-client-id" + client_secret = "test-client-secret" + } + } + } + application_settings { + cookie_domain = "test.abc.com" + csm_settings { + rctoken_aud = "test-aud-set" + } + access_denied_page_settings { + access_denied_page_uri = "test-uri" + generate_troubleshooting_uri = true + remediation_token_generation_enabled = false + } + attribute_propagation_settings { + output_credentials = ["HEADER"] + expression = "attributes.saml_attributes.filter(attribute, attribute.name in [\"test1\", \"test2\"])" + enable = false + } + } +} diff --git a/terraform/google/backup/google_iap_tunnel_dest_group.tf b/terraform/google/backup/google_iap_tunnel_dest_group.tf new file mode 100644 index 00000000..806e562f --- /dev/null +++ b/terraform/google/backup/google_iap_tunnel_dest_group.tf @@ -0,0 +1 @@ +resource "google_iap_tunnel_dest_group" "pike" {} diff --git a/terraform/google/backup/google_iap_web_forwarding_rule_service_iam_binding.tf b/terraform/google/backup/google_iap_web_forwarding_rule_service_iam_binding.tf new file mode 100644 index 00000000..f50e6d02 --- /dev/null +++ b/terraform/google/backup/google_iap_web_forwarding_rule_service_iam_binding.tf @@ -0,0 +1 @@ +resource "google_iap_web_forwarding_rule_service_iam_binding" "pike" {} diff --git a/terraform/google/backup/google_iap_web_forwarding_rule_service_iam_member.tf b/terraform/google/backup/google_iap_web_forwarding_rule_service_iam_member.tf new file mode 100644 index 00000000..93be6493 --- /dev/null +++ b/terraform/google/backup/google_iap_web_forwarding_rule_service_iam_member.tf @@ -0,0 +1 @@ +resource "google_iap_web_forwarding_rule_service_iam_member" "pike" {} diff --git a/terraform/google/backup/google_iap_web_forwarding_rule_service_iam_policy.tf b/terraform/google/backup/google_iap_web_forwarding_rule_service_iam_policy.tf new file mode 100644 index 00000000..6333c07f --- /dev/null +++ b/terraform/google/backup/google_iap_web_forwarding_rule_service_iam_policy.tf @@ -0,0 +1 @@ +resource "google_iap_web_forwarding_rule_service_iam_policy" "pike" {} diff --git a/terraform/google/backup/google_vertex_ai_cache_config.tf b/terraform/google/backup/google_vertex_ai_cache_config.tf new file mode 100644 index 00000000..350c09aa --- /dev/null +++ b/terraform/google/backup/google_vertex_ai_cache_config.tf @@ -0,0 +1 @@ +resource "google_vertex_ai_cache_config" "pike" {} diff --git a/terraform/google/backup/google_vertex_ai_deployment_resource_pool.tf b/terraform/google/backup/google_vertex_ai_deployment_resource_pool.tf new file mode 100644 index 00000000..bc12d6ab --- /dev/null +++ b/terraform/google/backup/google_vertex_ai_deployment_resource_pool.tf @@ -0,0 +1 @@ +resource "google_vertex_ai_deployment_resource_pool" "pike" {} diff --git a/terraform/google/backup/google_vertex_ai_endpoint_with_model_garden_deployment.tf b/terraform/google/backup/google_vertex_ai_endpoint_with_model_garden_deployment.tf new file mode 100644 index 00000000..aeddf2ba --- /dev/null +++ b/terraform/google/backup/google_vertex_ai_endpoint_with_model_garden_deployment.tf @@ -0,0 +1,7 @@ +resource "google_vertex_ai_endpoint_with_model_garden_deployment" "deploy" { + publisher_model_name = "publishers/google/models/paligemma@paligemma-224-float32" + location = "europe-west2" + model_config { + accept_eula = true + } +} diff --git a/terraform/google/backup/google_vertex_ai_index_endpoint_deployed_index.tf b/terraform/google/backup/google_vertex_ai_index_endpoint_deployed_index.tf new file mode 100644 index 00000000..10f29671 --- /dev/null +++ b/terraform/google/backup/google_vertex_ai_index_endpoint_deployed_index.tf @@ -0,0 +1,83 @@ +resource "google_vertex_ai_index_endpoint_deployed_index" "basic_deployed_index" { + deployed_index_id = "deployed_index_id" + display_name = "vertex-deployed-index" + region = "us-central1" + index = google_vertex_ai_index.index.id + index_endpoint = google_vertex_ai_index_endpoint.vertex_index_endpoint_deployed.id + enable_access_logging = false + reserved_ip_ranges = ["vertex-ai-range"] + + deployed_index_auth_config { + + auth_provider { + audiences = ["123456-my-app"] + allowed_issuers = ["${google_service_account.sa.email}"] + } + } +} + +resource "google_vertex_ai_index" "index" { + region = "us-central1" + display_name = "test-index" + description = "index for test" + index_update_method = "BATCH_UPDATE" + labels = { + foo = "bar" + } + + metadata { + contents_delta_uri = "gs://${google_storage_bucket.bucket.name}/contents" + + config { + dimensions = 2 + approximate_neighbors_count = 150 + shard_size = "SHARD_SIZE_SMALL" + distance_measure_type = "DOT_PRODUCT_DISTANCE" + + algorithm_config { + + tree_ah_config { + leaf_node_embedding_count = 500 + leaf_nodes_to_search_percent = 7 + } + } + } + } +} + +resource "google_vertex_ai_index_endpoint" "vertex_index_endpoint_deployed" { + display_name = "sample-endpoint" + description = "A sample vertex endpoint" + region = "us-central1" + network = "projects/${data.google_project.project.number}/global/networks/${data.google_compute_network.vertex_network.name}" + labels = { + label-one = "value-one" + } +} + +resource "google_service_account" "sa" { + account_id = "vertex-sa" +} + +resource "google_storage_bucket" "bucket" { + name = "bucket-name-jgw-test" + location = "us-central1" + uniform_bucket_level_access = true +} + +# The sample data comes from the following link: +# https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens +resource "google_storage_bucket_object" "data" { + name = "contents/data.json" + bucket = google_storage_bucket.bucket.name + content = <