/vendor/github.com/terraform-providers/terraform-provider-google/google/provider.go

https://github.com/openshift/installer · Go · 1033 lines · 988 code · 32 blank · 13 comment · 22 complexity · 363f72d4a4bfff18b2ad9189f4de3a02 MD5 · raw file

  1. package google
  2. import (
  3. "context"
  4. "fmt"
  5. "os"
  6. "time"
  7. "github.com/hashicorp/terraform-plugin-sdk/helper/mutexkv"
  8. "github.com/hashicorp/terraform-plugin-sdk/helper/schema"
  9. "github.com/hashicorp/terraform-plugin-sdk/terraform"
  10. googleoauth "golang.org/x/oauth2/google"
  11. )
  12. // Global MutexKV
  13. var mutexKV = mutexkv.NewMutexKV()
  14. // Provider returns a terraform.ResourceProvider.
  15. func Provider() terraform.ResourceProvider {
  16. provider := &schema.Provider{
  17. Schema: map[string]*schema.Schema{
  18. "credentials": {
  19. Type: schema.TypeString,
  20. Optional: true,
  21. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  22. "GOOGLE_CREDENTIALS",
  23. "GOOGLE_CLOUD_KEYFILE_JSON",
  24. "GCLOUD_KEYFILE_JSON",
  25. }, nil),
  26. ValidateFunc: validateCredentials,
  27. },
  28. "access_token": {
  29. Type: schema.TypeString,
  30. Optional: true,
  31. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  32. "GOOGLE_OAUTH_ACCESS_TOKEN",
  33. }, nil),
  34. ConflictsWith: []string{"credentials"},
  35. },
  36. "project": {
  37. Type: schema.TypeString,
  38. Optional: true,
  39. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  40. "GOOGLE_PROJECT",
  41. "GOOGLE_CLOUD_PROJECT",
  42. "GCLOUD_PROJECT",
  43. "CLOUDSDK_CORE_PROJECT",
  44. }, nil),
  45. },
  46. "region": {
  47. Type: schema.TypeString,
  48. Optional: true,
  49. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  50. "GOOGLE_REGION",
  51. "GCLOUD_REGION",
  52. "CLOUDSDK_COMPUTE_REGION",
  53. }, nil),
  54. },
  55. "zone": {
  56. Type: schema.TypeString,
  57. Optional: true,
  58. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  59. "GOOGLE_ZONE",
  60. "GCLOUD_ZONE",
  61. "CLOUDSDK_COMPUTE_ZONE",
  62. }, nil),
  63. },
  64. "scopes": {
  65. Type: schema.TypeList,
  66. Optional: true,
  67. Elem: &schema.Schema{Type: schema.TypeString},
  68. },
  69. "batching": {
  70. Type: schema.TypeList,
  71. Optional: true,
  72. MaxItems: 1,
  73. Elem: &schema.Resource{
  74. Schema: map[string]*schema.Schema{
  75. "send_after": {
  76. Type: schema.TypeString,
  77. Optional: true,
  78. Default: "10s",
  79. ValidateFunc: validateNonNegativeDuration(),
  80. },
  81. "enable_batching": {
  82. Type: schema.TypeBool,
  83. Optional: true,
  84. Default: true,
  85. },
  86. },
  87. },
  88. },
  89. "user_project_override": {
  90. Type: schema.TypeBool,
  91. Optional: true,
  92. },
  93. "request_timeout": {
  94. Type: schema.TypeString,
  95. Optional: true,
  96. },
  97. // Generated Products
  98. "access_context_manager_custom_endpoint": {
  99. Type: schema.TypeString,
  100. Optional: true,
  101. ValidateFunc: validateCustomEndpoint,
  102. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  103. "GOOGLE_ACCESS_CONTEXT_MANAGER_CUSTOM_ENDPOINT",
  104. }, AccessContextManagerDefaultBasePath),
  105. },
  106. "app_engine_custom_endpoint": {
  107. Type: schema.TypeString,
  108. Optional: true,
  109. ValidateFunc: validateCustomEndpoint,
  110. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  111. "GOOGLE_APP_ENGINE_CUSTOM_ENDPOINT",
  112. }, AppEngineDefaultBasePath),
  113. },
  114. "big_query_custom_endpoint": {
  115. Type: schema.TypeString,
  116. Optional: true,
  117. ValidateFunc: validateCustomEndpoint,
  118. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  119. "GOOGLE_BIG_QUERY_CUSTOM_ENDPOINT",
  120. }, BigQueryDefaultBasePath),
  121. },
  122. "bigquery_data_transfer_custom_endpoint": {
  123. Type: schema.TypeString,
  124. Optional: true,
  125. ValidateFunc: validateCustomEndpoint,
  126. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  127. "GOOGLE_BIGQUERY_DATA_TRANSFER_CUSTOM_ENDPOINT",
  128. }, BigqueryDataTransferDefaultBasePath),
  129. },
  130. "bigtable_custom_endpoint": {
  131. Type: schema.TypeString,
  132. Optional: true,
  133. ValidateFunc: validateCustomEndpoint,
  134. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  135. "GOOGLE_BIGTABLE_CUSTOM_ENDPOINT",
  136. }, BigtableDefaultBasePath),
  137. },
  138. "binary_authorization_custom_endpoint": {
  139. Type: schema.TypeString,
  140. Optional: true,
  141. ValidateFunc: validateCustomEndpoint,
  142. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  143. "GOOGLE_BINARY_AUTHORIZATION_CUSTOM_ENDPOINT",
  144. }, BinaryAuthorizationDefaultBasePath),
  145. },
  146. "cloud_build_custom_endpoint": {
  147. Type: schema.TypeString,
  148. Optional: true,
  149. ValidateFunc: validateCustomEndpoint,
  150. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  151. "GOOGLE_CLOUD_BUILD_CUSTOM_ENDPOINT",
  152. }, CloudBuildDefaultBasePath),
  153. },
  154. "cloud_functions_custom_endpoint": {
  155. Type: schema.TypeString,
  156. Optional: true,
  157. ValidateFunc: validateCustomEndpoint,
  158. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  159. "GOOGLE_CLOUD_FUNCTIONS_CUSTOM_ENDPOINT",
  160. }, CloudFunctionsDefaultBasePath),
  161. },
  162. "cloud_iot_custom_endpoint": {
  163. Type: schema.TypeString,
  164. Optional: true,
  165. ValidateFunc: validateCustomEndpoint,
  166. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  167. "GOOGLE_CLOUD_IOT_CUSTOM_ENDPOINT",
  168. }, CloudIotDefaultBasePath),
  169. },
  170. "cloud_run_custom_endpoint": {
  171. Type: schema.TypeString,
  172. Optional: true,
  173. ValidateFunc: validateCustomEndpoint,
  174. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  175. "GOOGLE_CLOUD_RUN_CUSTOM_ENDPOINT",
  176. }, CloudRunDefaultBasePath),
  177. },
  178. "cloud_scheduler_custom_endpoint": {
  179. Type: schema.TypeString,
  180. Optional: true,
  181. ValidateFunc: validateCustomEndpoint,
  182. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  183. "GOOGLE_CLOUD_SCHEDULER_CUSTOM_ENDPOINT",
  184. }, CloudSchedulerDefaultBasePath),
  185. },
  186. "cloud_tasks_custom_endpoint": {
  187. Type: schema.TypeString,
  188. Optional: true,
  189. ValidateFunc: validateCustomEndpoint,
  190. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  191. "GOOGLE_CLOUD_TASKS_CUSTOM_ENDPOINT",
  192. }, CloudTasksDefaultBasePath),
  193. },
  194. "compute_custom_endpoint": {
  195. Type: schema.TypeString,
  196. Optional: true,
  197. ValidateFunc: validateCustomEndpoint,
  198. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  199. "GOOGLE_COMPUTE_CUSTOM_ENDPOINT",
  200. }, ComputeDefaultBasePath),
  201. },
  202. "container_analysis_custom_endpoint": {
  203. Type: schema.TypeString,
  204. Optional: true,
  205. ValidateFunc: validateCustomEndpoint,
  206. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  207. "GOOGLE_CONTAINER_ANALYSIS_CUSTOM_ENDPOINT",
  208. }, ContainerAnalysisDefaultBasePath),
  209. },
  210. "data_catalog_custom_endpoint": {
  211. Type: schema.TypeString,
  212. Optional: true,
  213. ValidateFunc: validateCustomEndpoint,
  214. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  215. "GOOGLE_DATA_CATALOG_CUSTOM_ENDPOINT",
  216. }, DataCatalogDefaultBasePath),
  217. },
  218. "dataproc_custom_endpoint": {
  219. Type: schema.TypeString,
  220. Optional: true,
  221. ValidateFunc: validateCustomEndpoint,
  222. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  223. "GOOGLE_DATAPROC_CUSTOM_ENDPOINT",
  224. }, DataprocDefaultBasePath),
  225. },
  226. "datastore_custom_endpoint": {
  227. Type: schema.TypeString,
  228. Optional: true,
  229. ValidateFunc: validateCustomEndpoint,
  230. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  231. "GOOGLE_DATASTORE_CUSTOM_ENDPOINT",
  232. }, DatastoreDefaultBasePath),
  233. },
  234. "deployment_manager_custom_endpoint": {
  235. Type: schema.TypeString,
  236. Optional: true,
  237. ValidateFunc: validateCustomEndpoint,
  238. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  239. "GOOGLE_DEPLOYMENT_MANAGER_CUSTOM_ENDPOINT",
  240. }, DeploymentManagerDefaultBasePath),
  241. },
  242. "dialogflow_custom_endpoint": {
  243. Type: schema.TypeString,
  244. Optional: true,
  245. ValidateFunc: validateCustomEndpoint,
  246. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  247. "GOOGLE_DIALOGFLOW_CUSTOM_ENDPOINT",
  248. }, DialogflowDefaultBasePath),
  249. },
  250. "dns_custom_endpoint": {
  251. Type: schema.TypeString,
  252. Optional: true,
  253. ValidateFunc: validateCustomEndpoint,
  254. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  255. "GOOGLE_DNS_CUSTOM_ENDPOINT",
  256. }, DNSDefaultBasePath),
  257. },
  258. "filestore_custom_endpoint": {
  259. Type: schema.TypeString,
  260. Optional: true,
  261. ValidateFunc: validateCustomEndpoint,
  262. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  263. "GOOGLE_FILESTORE_CUSTOM_ENDPOINT",
  264. }, FilestoreDefaultBasePath),
  265. },
  266. "firestore_custom_endpoint": {
  267. Type: schema.TypeString,
  268. Optional: true,
  269. ValidateFunc: validateCustomEndpoint,
  270. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  271. "GOOGLE_FIRESTORE_CUSTOM_ENDPOINT",
  272. }, FirestoreDefaultBasePath),
  273. },
  274. "healthcare_custom_endpoint": {
  275. Type: schema.TypeString,
  276. Optional: true,
  277. ValidateFunc: validateCustomEndpoint,
  278. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  279. "GOOGLE_HEALTHCARE_CUSTOM_ENDPOINT",
  280. }, HealthcareDefaultBasePath),
  281. },
  282. "iap_custom_endpoint": {
  283. Type: schema.TypeString,
  284. Optional: true,
  285. ValidateFunc: validateCustomEndpoint,
  286. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  287. "GOOGLE_IAP_CUSTOM_ENDPOINT",
  288. }, IapDefaultBasePath),
  289. },
  290. "identity_platform_custom_endpoint": {
  291. Type: schema.TypeString,
  292. Optional: true,
  293. ValidateFunc: validateCustomEndpoint,
  294. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  295. "GOOGLE_IDENTITY_PLATFORM_CUSTOM_ENDPOINT",
  296. }, IdentityPlatformDefaultBasePath),
  297. },
  298. "kms_custom_endpoint": {
  299. Type: schema.TypeString,
  300. Optional: true,
  301. ValidateFunc: validateCustomEndpoint,
  302. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  303. "GOOGLE_KMS_CUSTOM_ENDPOINT",
  304. }, KMSDefaultBasePath),
  305. },
  306. "logging_custom_endpoint": {
  307. Type: schema.TypeString,
  308. Optional: true,
  309. ValidateFunc: validateCustomEndpoint,
  310. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  311. "GOOGLE_LOGGING_CUSTOM_ENDPOINT",
  312. }, LoggingDefaultBasePath),
  313. },
  314. "ml_engine_custom_endpoint": {
  315. Type: schema.TypeString,
  316. Optional: true,
  317. ValidateFunc: validateCustomEndpoint,
  318. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  319. "GOOGLE_ML_ENGINE_CUSTOM_ENDPOINT",
  320. }, MLEngineDefaultBasePath),
  321. },
  322. "monitoring_custom_endpoint": {
  323. Type: schema.TypeString,
  324. Optional: true,
  325. ValidateFunc: validateCustomEndpoint,
  326. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  327. "GOOGLE_MONITORING_CUSTOM_ENDPOINT",
  328. }, MonitoringDefaultBasePath),
  329. },
  330. "network_management_custom_endpoint": {
  331. Type: schema.TypeString,
  332. Optional: true,
  333. ValidateFunc: validateCustomEndpoint,
  334. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  335. "GOOGLE_NETWORK_MANAGEMENT_CUSTOM_ENDPOINT",
  336. }, NetworkManagementDefaultBasePath),
  337. },
  338. "os_login_custom_endpoint": {
  339. Type: schema.TypeString,
  340. Optional: true,
  341. ValidateFunc: validateCustomEndpoint,
  342. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  343. "GOOGLE_OS_LOGIN_CUSTOM_ENDPOINT",
  344. }, OSLoginDefaultBasePath),
  345. },
  346. "pubsub_custom_endpoint": {
  347. Type: schema.TypeString,
  348. Optional: true,
  349. ValidateFunc: validateCustomEndpoint,
  350. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  351. "GOOGLE_PUBSUB_CUSTOM_ENDPOINT",
  352. }, PubsubDefaultBasePath),
  353. },
  354. "redis_custom_endpoint": {
  355. Type: schema.TypeString,
  356. Optional: true,
  357. ValidateFunc: validateCustomEndpoint,
  358. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  359. "GOOGLE_REDIS_CUSTOM_ENDPOINT",
  360. }, RedisDefaultBasePath),
  361. },
  362. "resource_manager_custom_endpoint": {
  363. Type: schema.TypeString,
  364. Optional: true,
  365. ValidateFunc: validateCustomEndpoint,
  366. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  367. "GOOGLE_RESOURCE_MANAGER_CUSTOM_ENDPOINT",
  368. }, ResourceManagerDefaultBasePath),
  369. },
  370. "runtime_config_custom_endpoint": {
  371. Type: schema.TypeString,
  372. Optional: true,
  373. ValidateFunc: validateCustomEndpoint,
  374. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  375. "GOOGLE_RUNTIME_CONFIG_CUSTOM_ENDPOINT",
  376. }, RuntimeConfigDefaultBasePath),
  377. },
  378. "secret_manager_custom_endpoint": {
  379. Type: schema.TypeString,
  380. Optional: true,
  381. ValidateFunc: validateCustomEndpoint,
  382. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  383. "GOOGLE_SECRET_MANAGER_CUSTOM_ENDPOINT",
  384. }, SecretManagerDefaultBasePath),
  385. },
  386. "security_center_custom_endpoint": {
  387. Type: schema.TypeString,
  388. Optional: true,
  389. ValidateFunc: validateCustomEndpoint,
  390. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  391. "GOOGLE_SECURITY_CENTER_CUSTOM_ENDPOINT",
  392. }, SecurityCenterDefaultBasePath),
  393. },
  394. "service_management_custom_endpoint": {
  395. Type: schema.TypeString,
  396. Optional: true,
  397. ValidateFunc: validateCustomEndpoint,
  398. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  399. "GOOGLE_SERVICE_MANAGEMENT_CUSTOM_ENDPOINT",
  400. }, ServiceManagementDefaultBasePath),
  401. },
  402. "service_usage_custom_endpoint": {
  403. Type: schema.TypeString,
  404. Optional: true,
  405. ValidateFunc: validateCustomEndpoint,
  406. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  407. "GOOGLE_SERVICE_USAGE_CUSTOM_ENDPOINT",
  408. }, ServiceUsageDefaultBasePath),
  409. },
  410. "source_repo_custom_endpoint": {
  411. Type: schema.TypeString,
  412. Optional: true,
  413. ValidateFunc: validateCustomEndpoint,
  414. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  415. "GOOGLE_SOURCE_REPO_CUSTOM_ENDPOINT",
  416. }, SourceRepoDefaultBasePath),
  417. },
  418. "spanner_custom_endpoint": {
  419. Type: schema.TypeString,
  420. Optional: true,
  421. ValidateFunc: validateCustomEndpoint,
  422. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  423. "GOOGLE_SPANNER_CUSTOM_ENDPOINT",
  424. }, SpannerDefaultBasePath),
  425. },
  426. "sql_custom_endpoint": {
  427. Type: schema.TypeString,
  428. Optional: true,
  429. ValidateFunc: validateCustomEndpoint,
  430. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  431. "GOOGLE_SQL_CUSTOM_ENDPOINT",
  432. }, SQLDefaultBasePath),
  433. },
  434. "storage_custom_endpoint": {
  435. Type: schema.TypeString,
  436. Optional: true,
  437. ValidateFunc: validateCustomEndpoint,
  438. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  439. "GOOGLE_STORAGE_CUSTOM_ENDPOINT",
  440. }, StorageDefaultBasePath),
  441. },
  442. "tpu_custom_endpoint": {
  443. Type: schema.TypeString,
  444. Optional: true,
  445. ValidateFunc: validateCustomEndpoint,
  446. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  447. "GOOGLE_TPU_CUSTOM_ENDPOINT",
  448. }, TPUDefaultBasePath),
  449. },
  450. "vpc_access_custom_endpoint": {
  451. Type: schema.TypeString,
  452. Optional: true,
  453. ValidateFunc: validateCustomEndpoint,
  454. DefaultFunc: schema.MultiEnvDefaultFunc([]string{
  455. "GOOGLE_VPC_ACCESS_CUSTOM_ENDPOINT",
  456. }, VPCAccessDefaultBasePath),
  457. },
  458. // Handwritten Products / Versioned / Atypical Entries
  459. CloudBillingCustomEndpointEntryKey: CloudBillingCustomEndpointEntry,
  460. ComposerCustomEndpointEntryKey: ComposerCustomEndpointEntry,
  461. ComputeBetaCustomEndpointEntryKey: ComputeBetaCustomEndpointEntry,
  462. ContainerCustomEndpointEntryKey: ContainerCustomEndpointEntry,
  463. ContainerBetaCustomEndpointEntryKey: ContainerBetaCustomEndpointEntry,
  464. DataprocBetaCustomEndpointEntryKey: DataprocBetaCustomEndpointEntry,
  465. DataflowCustomEndpointEntryKey: DataflowCustomEndpointEntry,
  466. DnsBetaCustomEndpointEntryKey: DnsBetaCustomEndpointEntry,
  467. IamCredentialsCustomEndpointEntryKey: IamCredentialsCustomEndpointEntry,
  468. ResourceManagerV2Beta1CustomEndpointEntryKey: ResourceManagerV2Beta1CustomEndpointEntry,
  469. RuntimeConfigCustomEndpointEntryKey: RuntimeConfigCustomEndpointEntry,
  470. IAMCustomEndpointEntryKey: IAMCustomEndpointEntry,
  471. ServiceNetworkingCustomEndpointEntryKey: ServiceNetworkingCustomEndpointEntry,
  472. ServiceUsageCustomEndpointEntryKey: ServiceUsageCustomEndpointEntry,
  473. StorageTransferCustomEndpointEntryKey: StorageTransferCustomEndpointEntry,
  474. BigtableAdminCustomEndpointEntryKey: BigtableAdminCustomEndpointEntry,
  475. },
  476. DataSourcesMap: map[string]*schema.Resource{
  477. "google_active_folder": dataSourceGoogleActiveFolder(),
  478. "google_billing_account": dataSourceGoogleBillingAccount(),
  479. "google_bigquery_default_service_account": dataSourceGoogleBigqueryDefaultServiceAccount(),
  480. "google_client_config": dataSourceGoogleClientConfig(),
  481. "google_client_openid_userinfo": dataSourceGoogleClientOpenIDUserinfo(),
  482. "google_cloudfunctions_function": dataSourceGoogleCloudFunctionsFunction(),
  483. "google_composer_image_versions": dataSourceGoogleComposerImageVersions(),
  484. "google_compute_address": dataSourceGoogleComputeAddress(),
  485. "google_compute_backend_service": dataSourceGoogleComputeBackendService(),
  486. "google_compute_backend_bucket": dataSourceGoogleComputeBackendBucket(),
  487. "google_compute_default_service_account": dataSourceGoogleComputeDefaultServiceAccount(),
  488. "google_compute_forwarding_rule": dataSourceGoogleComputeForwardingRule(),
  489. "google_compute_global_address": dataSourceGoogleComputeGlobalAddress(),
  490. "google_compute_image": dataSourceGoogleComputeImage(),
  491. "google_compute_instance": dataSourceGoogleComputeInstance(),
  492. "google_compute_instance_serial_port": dataSourceGoogleComputeInstanceSerialPort(),
  493. "google_compute_instance_group": dataSourceGoogleComputeInstanceGroup(),
  494. "google_compute_lb_ip_ranges": dataSourceGoogleComputeLbIpRanges(),
  495. "google_compute_network": dataSourceGoogleComputeNetwork(),
  496. "google_compute_network_endpoint_group": dataSourceGoogleComputeNetworkEndpointGroup(),
  497. "google_compute_node_types": dataSourceGoogleComputeNodeTypes(),
  498. "google_compute_regions": dataSourceGoogleComputeRegions(),
  499. "google_compute_region_instance_group": dataSourceGoogleComputeRegionInstanceGroup(),
  500. "google_compute_router": dataSourceGoogleComputeRouter(),
  501. "google_compute_ssl_certificate": dataSourceGoogleComputeSslCertificate(),
  502. "google_compute_ssl_policy": dataSourceGoogleComputeSslPolicy(),
  503. "google_compute_subnetwork": dataSourceGoogleComputeSubnetwork(),
  504. "google_compute_vpn_gateway": dataSourceGoogleComputeVpnGateway(),
  505. "google_compute_zones": dataSourceGoogleComputeZones(),
  506. "google_container_cluster": dataSourceGoogleContainerCluster(),
  507. "google_container_engine_versions": dataSourceGoogleContainerEngineVersions(),
  508. "google_container_registry_image": dataSourceGoogleContainerImage(),
  509. "google_container_registry_repository": dataSourceGoogleContainerRepo(),
  510. "google_dns_keys": dataSourceDNSKeys(),
  511. "google_dns_managed_zone": dataSourceDnsManagedZone(),
  512. "google_iam_policy": dataSourceGoogleIamPolicy(),
  513. "google_iam_role": dataSourceGoogleIamRole(),
  514. "google_iam_testable_permissions": dataSourceGoogleIamTestablePermissions(),
  515. "google_kms_crypto_key": dataSourceGoogleKmsCryptoKey(),
  516. "google_kms_crypto_key_version": dataSourceGoogleKmsCryptoKeyVersion(),
  517. "google_kms_key_ring": dataSourceGoogleKmsKeyRing(),
  518. "google_kms_secret": dataSourceGoogleKmsSecret(),
  519. "google_kms_secret_ciphertext": dataSourceGoogleKmsSecretCiphertext(),
  520. "google_folder": dataSourceGoogleFolder(),
  521. "google_folder_organization_policy": dataSourceGoogleFolderOrganizationPolicy(),
  522. "google_monitoring_notification_channel": dataSourceMonitoringNotificationChannel(),
  523. "google_monitoring_app_engine_service": dataSourceMonitoringServiceAppEngine(),
  524. "google_monitoring_uptime_check_ips": dataSourceGoogleMonitoringUptimeCheckIps(),
  525. "google_netblock_ip_ranges": dataSourceGoogleNetblockIpRanges(),
  526. "google_organization": dataSourceGoogleOrganization(),
  527. "google_project": dataSourceGoogleProject(),
  528. "google_projects": dataSourceGoogleProjects(),
  529. "google_project_organization_policy": dataSourceGoogleProjectOrganizationPolicy(),
  530. "google_secret_manager_secret_version": dataSourceSecretManagerSecretVersion(),
  531. "google_service_account": dataSourceGoogleServiceAccount(),
  532. "google_service_account_access_token": dataSourceGoogleServiceAccountAccessToken(),
  533. "google_service_account_key": dataSourceGoogleServiceAccountKey(),
  534. "google_sql_ca_certs": dataSourceGoogleSQLCaCerts(),
  535. "google_storage_bucket_object": dataSourceGoogleStorageBucketObject(),
  536. "google_storage_object_signed_url": dataSourceGoogleSignedUrl(),
  537. "google_storage_project_service_account": dataSourceGoogleStorageProjectServiceAccount(),
  538. "google_storage_transfer_project_service_account": dataSourceGoogleStorageTransferProjectServiceAccount(),
  539. "google_tpu_tensorflow_versions": dataSourceTpuTensorflowVersions(),
  540. },
  541. ResourcesMap: ResourceMap(),
  542. }
  543. provider.ConfigureFunc = func(d *schema.ResourceData) (interface{}, error) {
  544. terraformVersion := provider.TerraformVersion
  545. if terraformVersion == "" {
  546. // Terraform 0.12 introduced this field to the protocol
  547. // We can therefore assume that if it's missing it's 0.10 or 0.11
  548. terraformVersion = "0.11+compatible"
  549. }
  550. return providerConfigure(d, provider, terraformVersion)
  551. }
  552. return provider
  553. }
  554. // Generated resources: 136
  555. // Generated IAM resources: 57
  556. // Total generated resources: 193
  557. func ResourceMap() map[string]*schema.Resource {
  558. resourceMap, _ := ResourceMapWithErrors()
  559. return resourceMap
  560. }
  561. func ResourceMapWithErrors() (map[string]*schema.Resource, error) {
  562. return mergeResourceMaps(
  563. map[string]*schema.Resource{
  564. "google_access_context_manager_access_policy": resourceAccessContextManagerAccessPolicy(),
  565. "google_access_context_manager_access_level": resourceAccessContextManagerAccessLevel(),
  566. "google_access_context_manager_service_perimeter": resourceAccessContextManagerServicePerimeter(),
  567. "google_access_context_manager_service_perimeter_resource": resourceAccessContextManagerServicePerimeterResource(),
  568. "google_app_engine_domain_mapping": resourceAppEngineDomainMapping(),
  569. "google_app_engine_firewall_rule": resourceAppEngineFirewallRule(),
  570. "google_app_engine_standard_app_version": resourceAppEngineStandardAppVersion(),
  571. "google_app_engine_flexible_app_version": resourceAppEngineFlexibleAppVersion(),
  572. "google_app_engine_application_url_dispatch_rules": resourceAppEngineApplicationUrlDispatchRules(),
  573. "google_app_engine_service_split_traffic": resourceAppEngineServiceSplitTraffic(),
  574. "google_bigquery_dataset": resourceBigQueryDataset(),
  575. "google_bigquery_dataset_access": resourceBigQueryDatasetAccess(),
  576. "google_bigquery_job": resourceBigQueryJob(),
  577. "google_bigquery_data_transfer_config": resourceBigqueryDataTransferConfig(),
  578. "google_bigtable_app_profile": resourceBigtableAppProfile(),
  579. "google_binary_authorization_attestor": resourceBinaryAuthorizationAttestor(),
  580. "google_binary_authorization_attestor_iam_binding": ResourceIamBinding(BinaryAuthorizationAttestorIamSchema, BinaryAuthorizationAttestorIamUpdaterProducer, BinaryAuthorizationAttestorIdParseFunc),
  581. "google_binary_authorization_attestor_iam_member": ResourceIamMember(BinaryAuthorizationAttestorIamSchema, BinaryAuthorizationAttestorIamUpdaterProducer, BinaryAuthorizationAttestorIdParseFunc),
  582. "google_binary_authorization_attestor_iam_policy": ResourceIamPolicy(BinaryAuthorizationAttestorIamSchema, BinaryAuthorizationAttestorIamUpdaterProducer, BinaryAuthorizationAttestorIdParseFunc),
  583. "google_binary_authorization_policy": resourceBinaryAuthorizationPolicy(),
  584. "google_cloudbuild_trigger": resourceCloudBuildTrigger(),
  585. "google_cloudfunctions_function_iam_binding": ResourceIamBinding(CloudFunctionsCloudFunctionIamSchema, CloudFunctionsCloudFunctionIamUpdaterProducer, CloudFunctionsCloudFunctionIdParseFunc),
  586. "google_cloudfunctions_function_iam_member": ResourceIamMember(CloudFunctionsCloudFunctionIamSchema, CloudFunctionsCloudFunctionIamUpdaterProducer, CloudFunctionsCloudFunctionIdParseFunc),
  587. "google_cloudfunctions_function_iam_policy": ResourceIamPolicy(CloudFunctionsCloudFunctionIamSchema, CloudFunctionsCloudFunctionIamUpdaterProducer, CloudFunctionsCloudFunctionIdParseFunc),
  588. "google_cloudiot_registry": resourceCloudIotDeviceRegistry(),
  589. "google_cloud_run_domain_mapping": resourceCloudRunDomainMapping(),
  590. "google_cloud_run_service": resourceCloudRunService(),
  591. "google_cloud_run_service_iam_binding": ResourceIamBinding(CloudRunServiceIamSchema, CloudRunServiceIamUpdaterProducer, CloudRunServiceIdParseFunc),
  592. "google_cloud_run_service_iam_member": ResourceIamMember(CloudRunServiceIamSchema, CloudRunServiceIamUpdaterProducer, CloudRunServiceIdParseFunc),
  593. "google_cloud_run_service_iam_policy": ResourceIamPolicy(CloudRunServiceIamSchema, CloudRunServiceIamUpdaterProducer, CloudRunServiceIdParseFunc),
  594. "google_cloud_scheduler_job": resourceCloudSchedulerJob(),
  595. "google_cloud_tasks_queue": resourceCloudTasksQueue(),
  596. "google_compute_address": resourceComputeAddress(),
  597. "google_compute_autoscaler": resourceComputeAutoscaler(),
  598. "google_compute_backend_bucket": resourceComputeBackendBucket(),
  599. "google_compute_backend_bucket_signed_url_key": resourceComputeBackendBucketSignedUrlKey(),
  600. "google_compute_backend_service": resourceComputeBackendService(),
  601. "google_compute_region_backend_service": resourceComputeRegionBackendService(),
  602. "google_compute_backend_service_signed_url_key": resourceComputeBackendServiceSignedUrlKey(),
  603. "google_compute_region_disk_resource_policy_attachment": resourceComputeRegionDiskResourcePolicyAttachment(),
  604. "google_compute_disk_resource_policy_attachment": resourceComputeDiskResourcePolicyAttachment(),
  605. "google_compute_disk": resourceComputeDisk(),
  606. "google_compute_firewall": resourceComputeFirewall(),
  607. "google_compute_forwarding_rule": resourceComputeForwardingRule(),
  608. "google_compute_global_address": resourceComputeGlobalAddress(),
  609. "google_compute_global_forwarding_rule": resourceComputeGlobalForwardingRule(),
  610. "google_compute_http_health_check": resourceComputeHttpHealthCheck(),
  611. "google_compute_https_health_check": resourceComputeHttpsHealthCheck(),
  612. "google_compute_health_check": resourceComputeHealthCheck(),
  613. "google_compute_image": resourceComputeImage(),
  614. "google_compute_instance_iam_binding": ResourceIamBinding(ComputeInstanceIamSchema, ComputeInstanceIamUpdaterProducer, ComputeInstanceIdParseFunc),
  615. "google_compute_instance_iam_member": ResourceIamMember(ComputeInstanceIamSchema, ComputeInstanceIamUpdaterProducer, ComputeInstanceIdParseFunc),
  616. "google_compute_instance_iam_policy": ResourceIamPolicy(ComputeInstanceIamSchema, ComputeInstanceIamUpdaterProducer, ComputeInstanceIdParseFunc),
  617. "google_compute_instance_group_named_port": resourceComputeInstanceGroupNamedPort(),
  618. "google_compute_interconnect_attachment": resourceComputeInterconnectAttachment(),
  619. "google_compute_network": resourceComputeNetwork(),
  620. "google_compute_network_endpoint": resourceComputeNetworkEndpoint(),
  621. "google_compute_network_endpoint_group": resourceComputeNetworkEndpointGroup(),
  622. "google_compute_global_network_endpoint": resourceComputeGlobalNetworkEndpoint(),
  623. "google_compute_global_network_endpoint_group": resourceComputeGlobalNetworkEndpointGroup(),
  624. "google_compute_node_group": resourceComputeNodeGroup(),
  625. "google_compute_network_peering_routes_config": resourceComputeNetworkPeeringRoutesConfig(),
  626. "google_compute_node_template": resourceComputeNodeTemplate(),
  627. "google_compute_region_autoscaler": resourceComputeRegionAutoscaler(),
  628. "google_compute_region_disk": resourceComputeRegionDisk(),
  629. "google_compute_region_url_map": resourceComputeRegionUrlMap(),
  630. "google_compute_region_health_check": resourceComputeRegionHealthCheck(),
  631. "google_compute_resource_policy": resourceComputeResourcePolicy(),
  632. "google_compute_route": resourceComputeRoute(),
  633. "google_compute_router": resourceComputeRouter(),
  634. "google_compute_router_nat": resourceComputeRouterNat(),
  635. "google_compute_router_peer": resourceComputeRouterBgpPeer(),
  636. "google_compute_snapshot": resourceComputeSnapshot(),
  637. "google_compute_ssl_certificate": resourceComputeSslCertificate(),
  638. "google_compute_region_ssl_certificate": resourceComputeRegionSslCertificate(),
  639. "google_compute_reservation": resourceComputeReservation(),
  640. "google_compute_ssl_policy": resourceComputeSslPolicy(),
  641. "google_compute_subnetwork": resourceComputeSubnetwork(),
  642. "google_compute_subnetwork_iam_binding": ResourceIamBinding(ComputeSubnetworkIamSchema, ComputeSubnetworkIamUpdaterProducer, ComputeSubnetworkIdParseFunc),
  643. "google_compute_subnetwork_iam_member": ResourceIamMember(ComputeSubnetworkIamSchema, ComputeSubnetworkIamUpdaterProducer, ComputeSubnetworkIdParseFunc),
  644. "google_compute_subnetwork_iam_policy": ResourceIamPolicy(ComputeSubnetworkIamSchema, ComputeSubnetworkIamUpdaterProducer, ComputeSubnetworkIdParseFunc),
  645. "google_compute_target_http_proxy": resourceComputeTargetHttpProxy(),
  646. "google_compute_target_https_proxy": resourceComputeTargetHttpsProxy(),
  647. "google_compute_region_target_http_proxy": resourceComputeRegionTargetHttpProxy(),
  648. "google_compute_region_target_https_proxy": resourceComputeRegionTargetHttpsProxy(),
  649. "google_compute_target_instance": resourceComputeTargetInstance(),
  650. "google_compute_target_ssl_proxy": resourceComputeTargetSslProxy(),
  651. "google_compute_target_tcp_proxy": resourceComputeTargetTcpProxy(),
  652. "google_compute_vpn_gateway": resourceComputeVpnGateway(),
  653. "google_compute_url_map": resourceComputeUrlMap(),
  654. "google_compute_vpn_tunnel": resourceComputeVpnTunnel(),
  655. "google_container_analysis_note": resourceContainerAnalysisNote(),
  656. "google_container_analysis_occurrence": resourceContainerAnalysisOccurrence(),
  657. "google_data_catalog_entry_group": resourceDataCatalogEntryGroup(),
  658. "google_data_catalog_entry_group_iam_binding": ResourceIamBinding(DataCatalogEntryGroupIamSchema, DataCatalogEntryGroupIamUpdaterProducer, DataCatalogEntryGroupIdParseFunc),
  659. "google_data_catalog_entry_group_iam_member": ResourceIamMember(DataCatalogEntryGroupIamSchema, DataCatalogEntryGroupIamUpdaterProducer, DataCatalogEntryGroupIdParseFunc),
  660. "google_data_catalog_entry_group_iam_policy": ResourceIamPolicy(DataCatalogEntryGroupIamSchema, DataCatalogEntryGroupIamUpdaterProducer, DataCatalogEntryGroupIdParseFunc),
  661. "google_data_catalog_entry": resourceDataCatalogEntry(),
  662. "google_data_catalog_tag_template": resourceDataCatalogTagTemplate(),
  663. "google_data_catalog_tag": resourceDataCatalogTag(),
  664. "google_dataproc_autoscaling_policy": resourceDataprocAutoscalingPolicy(),
  665. "google_datastore_index": resourceDatastoreIndex(),
  666. "google_deployment_manager_deployment": resourceDeploymentManagerDeployment(),
  667. "google_dialogflow_agent": resourceDialogflowAgent(),
  668. "google_dialogflow_intent": resourceDialogflowIntent(),
  669. "google_dialogflow_entity_type": resourceDialogflowEntityType(),
  670. "google_dns_managed_zone": resourceDNSManagedZone(),
  671. "google_dns_policy": resourceDNSPolicy(),
  672. "google_filestore_instance": resourceFilestoreInstance(),
  673. "google_firestore_index": resourceFirestoreIndex(),
  674. "google_healthcare_dataset": resourceHealthcareDataset(),
  675. "google_healthcare_dicom_store": resourceHealthcareDicomStore(),
  676. "google_healthcare_fhir_store": resourceHealthcareFhirStore(),
  677. "google_healthcare_hl7_v2_store": resourceHealthcareHl7V2Store(),
  678. "google_iap_web_iam_binding": ResourceIamBinding(IapWebIamSchema, IapWebIamUpdaterProducer, IapWebIdParseFunc),
  679. "google_iap_web_iam_member": ResourceIamMember(IapWebIamSchema, IapWebIamUpdaterProducer, IapWebIdParseFunc),
  680. "google_iap_web_iam_policy": ResourceIamPolicy(IapWebIamSchema, IapWebIamUpdaterProducer, IapWebIdParseFunc),
  681. "google_iap_web_type_compute_iam_binding": ResourceIamBinding(IapWebTypeComputeIamSchema, IapWebTypeComputeIamUpdaterProducer, IapWebTypeComputeIdParseFunc),
  682. "google_iap_web_type_compute_iam_member": ResourceIamMember(IapWebTypeComputeIamSchema, IapWebTypeComputeIamUpdaterProducer, IapWebTypeComputeIdParseFunc),
  683. "google_iap_web_type_compute_iam_policy": ResourceIamPolicy(IapWebTypeComputeIamSchema, IapWebTypeComputeIamUpdaterProducer, IapWebTypeComputeIdParseFunc),
  684. "google_iap_web_type_app_engine_iam_binding": ResourceIamBinding(IapWebTypeAppEngineIamSchema, IapWebTypeAppEngineIamUpdaterProducer, IapWebTypeAppEngineIdParseFunc),
  685. "google_iap_web_type_app_engine_iam_member": ResourceIamMember(IapWebTypeAppEngineIamSchema, IapWebTypeAppEngineIamUpdaterProducer, IapWebTypeAppEngineIdParseFunc),
  686. "google_iap_web_type_app_engine_iam_policy": ResourceIamPolicy(IapWebTypeAppEngineIamSchema, IapWebTypeAppEngineIamUpdaterProducer, IapWebTypeAppEngineIdParseFunc),
  687. "google_iap_app_engine_version_iam_binding": ResourceIamBinding(IapAppEngineVersionIamSchema, IapAppEngineVersionIamUpdaterProducer, IapAppEngineVersionIdParseFunc),
  688. "google_iap_app_engine_version_iam_member": ResourceIamMember(IapAppEngineVersionIamSchema, IapAppEngineVersionIamUpdaterProducer, IapAppEngineVersionIdParseFunc),
  689. "google_iap_app_engine_version_iam_policy": ResourceIamPolicy(IapAppEngineVersionIamSchema, IapAppEngineVersionIamUpdaterProducer, IapAppEngineVersionIdParseFunc),
  690. "google_iap_app_engine_service_iam_binding": ResourceIamBinding(IapAppEngineServiceIamSchema, IapAppEngineServiceIamUpdaterProducer, IapAppEngineServiceIdParseFunc),
  691. "google_iap_app_engine_service_iam_member": ResourceIamMember(IapAppEngineServiceIamSchema, IapAppEngineServiceIamUpdaterProducer, IapAppEngineServiceIdParseFunc),
  692. "google_iap_app_engine_service_iam_policy": ResourceIamPolicy(IapAppEngineServiceIamSchema, IapAppEngineServiceIamUpdaterProducer, IapAppEngineServiceIdParseFunc),
  693. "google_iap_web_backend_service_iam_binding": ResourceIamBinding(IapWebBackendServiceIamSchema, IapWebBackendServiceIamUpdaterProducer, IapWebBackendServiceIdParseFunc),
  694. "google_iap_web_backend_service_iam_member": ResourceIamMember(IapWebBackendServiceIamSchema, IapWebBackendServiceIamUpdaterProducer, IapWebBackendServiceIdParseFunc),
  695. "google_iap_web_backend_service_iam_policy": ResourceIamPolicy(IapWebBackendServiceIamSchema, IapWebBackendServiceIamUpdaterProducer, IapWebBackendServiceIdParseFunc),
  696. "google_iap_tunnel_instance_iam_binding": ResourceIamBinding(IapTunnelInstanceIamSchema, IapTunnelInstanceIamUpdaterProducer, IapTunnelInstanceIdParseFunc),
  697. "google_iap_tunnel_instance_iam_member": ResourceIamMember(IapTunnelInstanceIamSchema, IapTunnelInstanceIamUpdaterProducer, IapTunnelInstanceIdParseFunc),
  698. "google_iap_tunnel_instance_iam_policy": ResourceIamPolicy(IapTunnelInstanceIamSchema, IapTunnelInstanceIamUpdaterProducer, IapTunnelInstanceIdParseFunc),
  699. "google_iap_brand": resourceIapBrand(),
  700. "google_iap_client": resourceIapClient(),
  701. "google_identity_platform_default_supported_idp_config": resourceIdentityPlatformDefaultSupportedIdpConfig(),
  702. "google_identity_platform_tenant_default_supported_idp_config": resourceIdentityPlatformTenantDefaultSupportedIdpConfig(),
  703. "google_identity_platform_inbound_saml_config": resourceIdentityPlatformInboundSamlConfig(),
  704. "google_identity_platform_tenant_inbound_saml_config": resourceIdentityPlatformTenantInboundSamlConfig(),
  705. "google_identity_platform_oauth_idp_config": resourceIdentityPlatformOauthIdpConfig(),
  706. "google_identity_platform_tenant_oauth_idp_config": resourceIdentityPlatformTenantOauthIdpConfig(),
  707. "google_identity_platform_tenant": resourceIdentityPlatformTenant(),
  708. "google_kms_key_ring": resourceKMSKeyRing(),
  709. "google_kms_crypto_key": resourceKMSCryptoKey(),
  710. "google_kms_secret_ciphertext": resourceKMSSecretCiphertext(),
  711. "google_logging_metric": resourceLoggingMetric(),
  712. "google_ml_engine_model": resourceMLEngineModel(),
  713. "google_monitoring_alert_policy": resourceMonitoringAlertPolicy(),
  714. "google_monitoring_group": resourceMonitoringGroup(),
  715. "google_monitoring_notification_channel": resourceMonitoringNotificationChannel(),
  716. "google_monitoring_custom_service": resourceMonitoringService(),
  717. "google_monitoring_slo": resourceMonitoringSlo(),
  718. "google_monitoring_uptime_check_config": resourceMonitoringUptimeCheckConfig(),
  719. "google_network_management_connectivity_test": resourceNetworkManagementConnectivityTest(),
  720. "google_os_login_ssh_public_key": resourceOSLoginSSHPublicKey(),
  721. "google_pubsub_topic": resourcePubsubTopic(),
  722. "google_pubsub_topic_iam_binding": ResourceIamBinding(PubsubTopicIamSchema, PubsubTopicIamUpdaterProducer, PubsubTopicIdParseFunc),
  723. "google_pubsub_topic_iam_member": ResourceIamMember(PubsubTopicIamSchema, PubsubTopicIamUpdaterProducer, PubsubTopicIdParseFunc),
  724. "google_pubsub_topic_iam_policy": ResourceIamPolicy(PubsubTopicIamSchema, PubsubTopicIamUpdaterProducer, PubsubTopicIdParseFunc),
  725. "google_pubsub_subscription": resourcePubsubSubscription(),
  726. "google_redis_instance": resourceRedisInstance(),
  727. "google_resource_manager_lien": resourceResourceManagerLien(),
  728. "google_runtimeconfig_config_iam_binding": ResourceIamBinding(RuntimeConfigConfigIamSchema, RuntimeConfigConfigIamUpdaterProducer, RuntimeConfigConfigIdParseFunc),
  729. "google_runtimeconfig_config_iam_member": ResourceIamMember(RuntimeConfigConfigIamSchema, RuntimeConfigConfigIamUpdaterProducer, RuntimeConfigConfigIdParseFunc),
  730. "google_runtimeconfig_config_iam_policy": ResourceIamPolicy(RuntimeConfigConfigIamSchema, RuntimeConfigConfigIamUpdaterProducer, RuntimeConfigConfigIdParseFunc),
  731. "google_secret_manager_secret": resourceSecretManagerSecret(),
  732. "google_secret_manager_secret_iam_binding": ResourceIamBinding(SecretManagerSecretIamSchema, SecretManagerSecretIamUpdaterProducer, SecretManagerSecretIdParseFunc),
  733. "google_secret_manager_secret_iam_member": ResourceIamMember(SecretManagerSecretIamSchema, SecretManagerSecretIamUpdaterProducer, SecretManagerSecretIdParseFunc),
  734. "google_secret_manager_secret_iam_policy": ResourceIamPolicy(SecretManagerSecretIamSchema, SecretManagerSecretIamUpdaterProducer, SecretManagerSecretIdParseFunc),
  735. "google_secret_manager_secret_version": resourceSecretManagerSecretVersion(),
  736. "google_scc_source": resourceSecurityCenterSource(),
  737. "google_endpoints_service_iam_binding": ResourceIamBinding(ServiceManagementServiceIamSchema, ServiceManagementServiceIamUpdaterProducer, ServiceManagementServiceIdParseFunc),
  738. "google_endpoints_service_iam_member": ResourceIamMember(ServiceManagementServiceIamSchema, ServiceManagementServiceIamUpdaterProducer, ServiceManagementServiceIdParseFunc),
  739. "google_endpoints_service_iam_policy": ResourceIamPolicy(ServiceManagementServiceIamSchema, ServiceManagementServiceIamUpdaterProducer, ServiceManagementServiceIdParseFunc),
  740. "google_sourcerepo_repository": resourceSourceRepoRepository(),
  741. "google_sourcerepo_repository_iam_binding": ResourceIamBinding(SourceRepoRepositoryIamSchema, SourceRepoRepositoryIamUpdaterProducer, SourceRepoRepositoryIdParseFunc),
  742. "google_sourcerepo_repository_iam_member": ResourceIamMember(SourceRepoRepositoryIamSchema, SourceRepoRepositoryIamUpdaterProducer, SourceRepoRepositoryIdParseFunc),
  743. "google_sourcerepo_repository_iam_policy": ResourceIamPolicy(SourceRepoRepositoryIamSchema, SourceRepoRepositoryIamUpdaterProducer, SourceRepoRepositoryIdParseFunc),
  744. "google_spanner_instance": resourceSpannerInstance(),
  745. "google_spanner_database": resourceSpannerDatabase(),
  746. "google_sql_database": resourceSQLDatabase(),
  747. "google_sql_source_representation_instance": resourceSQLSourceRepresentationInstance(),
  748. "google_storage_bucket_iam_binding": ResourceIamBinding(StorageBucketIamSchema, StorageBucketIamUpdaterProducer, StorageBucketIdParseFunc),
  749. "google_storage_bucket_iam_member": ResourceIamMember(StorageBucketIamSchema, StorageBucketIamUpdaterProducer, StorageBucketIdParseFunc),
  750. "google_storage_bucket_iam_policy": ResourceIamPolicy(StorageBucketIamSchema, StorageBucketIamUpdaterProducer, StorageBucketIdParseFunc),
  751. "google_storage_bucket_access_control": resourceStorageBucketAccessControl(),
  752. "google_storage_object_access_control": resourceStorageObjectAccessControl(),
  753. "google_storage_default_object_access_control": resourceStorageDefaultObjectAccessControl(),
  754. "google_storage_hmac_key": resourceStorageHmacKey(),
  755. "google_tpu_node": resourceTPUNode(),
  756. "google_vpc_access_connector": resourceVPCAccessConnector(),
  757. },
  758. map[string]*schema.Resource{
  759. "google_app_engine_application": resourceAppEngineApplication(),
  760. "google_bigquery_table": resourceBigQueryTable(),
  761. "google_bigtable_gc_policy": resourceBigtableGCPolicy(),
  762. "google_bigtable_instance": resourceBigtableInstance(),
  763. "google_bigtable_instance_iam_binding": ResourceIamBinding(IamBigtableInstanceSchema, NewBigtableInstanceUpdater, BigtableInstanceIdParseFunc),
  764. "google_bigtable_instance_iam_member": ResourceIamMember(IamBigtableInstanceSchema, NewBigtableInstanceUpdater, BigtableInstanceIdParseFunc),
  765. "google_bigtable_instance_iam_policy": ResourceIamPolicy(IamBigtableInstanceSchema, NewBigtableInstanceUpdater, BigtableInstanceIdParseFunc),
  766. "google_bigtable_table": resourceBigtableTable(),
  767. "google_bigquery_dataset_iam_binding": ResourceIamBinding(IamBigqueryDatasetSchema, NewBigqueryDatasetIamUpdater, BigqueryDatasetIdParseFunc),
  768. "google_bigquery_dataset_iam_member": ResourceIamMember(IamBigqueryDatasetSchema, NewBigqueryDatasetIamUpdater, BigqueryDatasetIdParseFunc),
  769. "google_bigquery_dataset_iam_policy": ResourceIamPolicy(IamBigqueryDatasetSchema, NewBigqueryDatasetIamUpdater, BigqueryDatasetIdParseFunc),
  770. "google_billing_account_iam_binding": ResourceIamBinding(IamBillingAccountSchema, NewBillingAccountIamUpdater, BillingAccountIdParseFunc),
  771. "google_billing_account_iam_member": ResourceIamMember(IamBillingAccountSchema, NewBillingAccountIamUpdater, BillingAccountIdParseFunc),
  772. "google_billing_account_iam_policy": ResourceIamPolicy(IamBillingAccountSchema, NewBillingAccountIamUpdater, BillingAccountIdParseFunc),
  773. "google_cloudfunctions_function": resourceCloudFunctionsFunction(),
  774. "google_composer_environment": resourceComposerEnvironment(),
  775. "google_compute_attached_disk": resourceComputeAttachedDisk(),
  776. "google_compute_instance": resourceComputeInstance(),
  777. "google_compute_instance_from_template": resourceComputeInstanceFromTemplate(),
  778. "google_compute_instance_group": resourceComputeInstanceGroup(),
  779. "google_compute_instance_group_manager": resourceComputeInstanceGroupManager(),
  780. "google_compute_instance_template": resourceComputeInstanceTemplate(),
  781. "google_compute_network_peering": resourceComputeNetworkPeering(),
  782. "google_compute_project_default_network_tier": resourceComputeProjectDefaultNetworkTier(),
  783. "google_compute_project_metadata": resourceComputeProjectMetadata(),
  784. "google_compute_project_metadata_item": resourceComputeProjectMetadataItem(),
  785. "google_compute_region_instance_group_manager": resourceComputeRegionInstanceGroupManager(),
  786. "google_compute_router_interface": resourceComputeRouterInterface(),
  787. "google_compute_security_policy": resourceComputeSecurityPolicy(),
  788. "google_compute_shared_vpc_host_project": resourceComputeSharedVpcHostProject(),
  789. "google_compute_shared_vpc_service_project": resourceComputeSharedVpcServiceProject(),
  790. "google_compute_target_pool": resourceComputeTargetPool(),
  791. "google_container_cluster": resourceContainerCluster(),
  792. "google_container_node_pool": resourceContainerNodePool(),
  793. "google_container_registry": resourceContainerRegistry(),
  794. "google_dataflow_job": resourceDataflowJob(),
  795. "google_dataproc_cluster": resourceDataprocCluster(),
  796. "google_dataproc_cluster_iam_binding": ResourceIamBinding(IamDataprocClusterSchema, NewDataprocClusterUpdater, DataprocClusterIdParseFunc),
  797. "google_dataproc_cluster_iam_member": ResourceIamMember(IamDataprocClusterSchema, NewDataprocClusterUpdater, DataprocClusterIdParseFunc),
  798. "google_dataproc_cluster_iam_policy": ResourceIamPolicy(IamDataprocClusterSchema, NewDataprocClusterUpdater, DataprocClusterIdParseFunc),
  799. "google_dataproc_job": resourceDataprocJob(),
  800. "google_dataproc_job_iam_binding": ResourceIamBinding(IamDataprocJobSchema, NewDataprocJobUpdater, DataprocJobIdParseFunc),
  801. "google_dataproc_job_iam_member": ResourceIamMember(IamDataprocJobSchema, NewDataprocJobUpdater, DataprocJobIdParseFunc),
  802. "google_dataproc_job_iam_policy": ResourceIamPolicy(IamDataprocJobSchema, NewDataprocJobUpdater, DataprocJobIdParseFunc),
  803. "google_dns_record_set": resourceDnsRecordSet(),
  804. "google_endpoints_service": resourceEndpointsService(),
  805. "google_folder": resourceGoogleFolder(),
  806. "google_folder_iam_binding": ResourceIamBinding(IamFolderSchema, NewFolderIamUpdater, FolderIdParseFunc),
  807. "google_folder_iam_member": ResourceIamMember(IamFolderSchema, NewFolderIamUpdater, FolderIdParseFunc),
  808. "google_folder_iam_policy": ResourceIamPolicy(IamFolderSchema, NewFolderIamUpdater, FolderIdParseFunc),
  809. "google_folder_organization_policy": resourceGoogleFolderOrganizationPolicy(),
  810. "google_healthcare_dataset_iam_binding": ResourceIamBindingWithBatching(IamHealthcareDatasetSchema, NewHealthcareDatasetIamUpdater, DatasetIdParseFunc, IamBatchingEnabled),
  811. "google_healthcare_dataset_iam_member": ResourceIamMemberWithBatching(IamHealthcareDatasetSchema, NewHealthcareDatasetIamUpdater, DatasetIdParseFunc, IamBatchingEnabled),
  812. "google_healthcare_dataset_iam_policy": ResourceIamPolicy(IamHealthcareDatasetSchema, NewHealthcareDatasetIamUpdater, DatasetIdParseFunc),
  813. "google_healthcare_dicom_store_iam_binding": ResourceIamBindingWithBatching(IamHealthcareDicomStoreSchema, NewHealthcareDicomStoreIamUpdater, DicomStoreIdParseFunc, IamBatchingEnabled),
  814. "google_healthcare_dicom_store_iam_member": ResourceIamMemberWithBatching(IamHealthcareDicomStoreSchema, NewHealthcareDicomStoreIamUpdater, DicomStoreIdParseFunc, IamBatchingEnabled),
  815. "google_healthcare_dicom_store_iam_policy": ResourceIamPolicy(IamHealthcareDicomStoreSchema, NewHealthcareDicomStoreIamUpdater, DicomStoreIdParseFunc),
  816. "google_healthcare_fhir_store_iam_binding": ResourceIamBindingWithBatching(IamHealthcareFhirStoreSchema, NewHealthcareFhirStoreIamUpdater, FhirStoreIdParseFunc, IamBatchingEnabled),
  817. "google_healthcare_fhir_store_iam_member": ResourceIamMemberWithBatching(IamHealthcareFhirStoreSchema, NewHealthcareFhirStoreIamUpdater, FhirStoreIdParseFunc, IamBatchingEnabled),
  818. "google_healthcare_fhir_store_iam_policy": ResourceIamPolicy(IamHealthcareFhirStoreSchema, NewHealthcareFhirStoreIamUpdater, FhirStoreIdParseFunc),
  819. "google_healthcare_hl7_v2_store_iam_binding": ResourceIamBindingWithBatching(IamHealthcareHl7V2StoreSchema, NewHealthcareHl7V2StoreIamUpdater, Hl7V2StoreIdParseFunc, IamBatchingEnabled),
  820. "google_healthcare_hl7_v2_store_iam_member": ResourceIamMemberWithBatching(IamHealthcareHl7V2StoreSchema, NewHealthcareHl7V2StoreIamUpdater, Hl7V2StoreIdParseFunc, IamBatchingEnabled),
  821. "google_healthcare_hl7_v2_store_iam_policy": ResourceIamPolicy(IamHealthcareHl7V2StoreSchema, NewHealthcareHl7V2StoreIamUpdater, Hl7V2StoreIdParseFunc),
  822. "google_logging_billing_account_sink": resourceLoggingBillingAccountSink(),
  823. "google_logging_billing_account_exclusion": ResourceLoggingExclusion(BillingAccountLoggingExclusionSchema, NewBillingAccountLoggingExclusionUpdater, billingAccountLoggingExclusionIdParseFunc),
  824. "google_logging_billing_account_bucket_config": ResourceLoggingBillingAccountBucketConfig(),
  825. "google_logging_organization_sink": resourceLoggingOrganizationSink(),
  826. "google_logging_organization_exclusion": ResourceLoggingExclusion(OrganizationLoggingExclusionSchema, NewOrganizationLoggingExclusionUpdater, organizationLoggingExclusionIdParseFunc),
  827. "google_logging_organization_bucket_config": ResourceLoggingOrganizationBucketConfig(),
  828. "google_logging_folder_sink": resourceLoggingFolderSink(),
  829. "google_logging_folder_exclusion": ResourceLoggingExclusion(FolderLoggingExclusionSchema, NewFolderLoggingExclusionUpdater, folderLoggingExclusionIdParseFunc),
  830. "google_logging_folder_bucket_config": ResourceLoggingFolderBucketConfig(),
  831. "google_logging_project_sink": resourceLoggingProjectSink(),
  832. "google_logging_project_exclusion": ResourceLoggingExclusion(ProjectLoggingExclusionSchema, NewProjectLoggingExclusionUpdater, projectLoggingExclusionIdParseFunc),
  833. "google_logging_project_bucket_config": ResourceLoggingProjectBucketConfig(),
  834. "google_kms_key_ring_iam_binding": ResourceIamBinding(IamKmsKeyRingSchema, NewKmsKeyRingIamUpdater, KeyRingIdParseFunc),
  835. "google_kms_key_ring_iam_member": ResourceIamMember(IamKmsKeyRingSchema, NewKmsKeyRingIamUpdater, KeyRingIdParseFunc),
  836. "google_kms_key_ring_iam_policy": ResourceIamPolicy(IamKmsKeyRingSchema, NewKmsKeyRingIamUpdater, KeyRingIdParseFunc),
  837. "google_kms_crypto_key_iam_binding": ResourceIamBinding(IamKmsCryptoKeySchema, NewKmsCryptoKeyIamUpdater, CryptoIdParseFunc),
  838. "google_kms_crypto_key_iam_member": ResourceIamMember(IamKmsCryptoKeySchema, NewKmsCryptoKeyIamUpdater, CryptoIdParseFunc),
  839. "google_kms_crypto_key_iam_policy": ResourceIamPolicy(IamKmsCryptoKeySchema, NewKmsCryptoKeyIamUpdater, CryptoIdParseFunc),
  840. "google_monitoring_dashboard": resourceMonitoringDashboard(),
  841. "google_service_networking_connection": resourceServiceNetworkingConnection(),
  842. "google_spanner_instance_iam_binding": ResourceIamBinding(IamSpannerInstanceSchema, NewSpannerInstanceIamUpdater, SpannerInstanceIdParseFunc),
  843. "google_spanner_instance_iam_member": ResourceIamMember(IamSpannerInstanceSchema, NewSpannerInstanceIamUpdater, SpannerInstanceIdParseFunc),
  844. "google_spanner_instance_iam_policy": ResourceIamPolicy(IamSpannerInstanceSchema, NewSpannerInstanceIamUpdater, SpannerInstanceIdParseFunc),
  845. "google_spanner_database_iam_binding": ResourceIamBinding(IamSpannerDatabaseSchema, NewSpannerDatabaseIamUpdater, SpannerDatabaseIdParseFunc),
  846. "google_spanner_database_iam_member": ResourceIamMember(IamSpannerDatabaseSchema, NewSpannerDatabaseIamUpdater, SpannerDatabaseIdParseFunc),
  847. "google_spanner_database_iam_policy": ResourceIamPolicy(IamSpannerDatabaseSchema, NewSpannerDatabaseIamUpdater, SpannerDatabaseIdParseFunc),
  848. "google_sql_database_instance": resourceSqlDatabaseInstance(),
  849. "google_sql_ssl_cert": resourceSqlSslCert(),
  850. "google_sql_user": resourceSqlUser(),
  851. "google_organization_iam_binding": ResourceIamBinding(IamOrganizationSchema, NewOrganizationIamUpdater, OrgIdParseFunc),
  852. "google_organization_iam_custom_role": resourceGoogleOrganizationIamCustomRole(),
  853. "google_organization_iam_member": ResourceIamMember(IamOrganizationSchema, NewOrganizationIamUpdater, OrgIdParseFunc),
  854. "google_organization_iam_policy": ResourceIamPolicy(IamOrganizationSchema, NewOrganizationIamUpdater, OrgIdParseFunc),
  855. "google_organization_iam_audit_config": ResourceIamAuditConfig(IamOrganizationSchema, NewOrganizationIamUpdater, OrgIdParseFunc),
  856. "google_organization_policy": resourceGoogleOrganizationPolicy(),
  857. "google_project": resourceGoogleProject(),
  858. "google_project_iam_policy": ResourceIamPolicy(IamPolicyProjectSchema, NewProjectIamPolicyUpdater, ProjectIdParseFunc),
  859. "google_project_iam_binding": ResourceIamBindingWithBatching(IamProjectSchema, NewProjectIamUpdater, ProjectIdParseFunc, IamBatchingEnabled),
  860. "google_project_iam_member": ResourceIamMemberWithBatching(IamProjectSchema, NewProjectIamUpdater, ProjectIdParseFunc, IamBatchingEnabled),
  861. "google_project_iam_audit_config": ResourceIamAuditConfigWithBatching(IamProjectSchema, NewProjectIamUpdater, ProjectIdParseFunc, IamBatchingEnabled),
  862. "google_project_service": resourceGoogleProjectService(),
  863. "google_project_iam_custom_role": resourceGoogleProjectIamCustomRole(),
  864. "google_project_organization_policy": resourceGoogleProjectOrganizationPolicy(),
  865. "google_project_usage_export_bucket": resourceProjectUsageBucket(),
  866. "google_pubsub_subscription_iam_binding": ResourceIamBinding(IamPubsubSubscriptionSchema, NewPubsubSubscriptionIamUpdater, PubsubSubscriptionIdParseFunc),
  867. "google_pubsub_subscription_iam_member": ResourceIamMember(IamPubsubSubscriptionSchema, NewPubsubSubscriptionIamUpdater, PubsubSubscriptionIdParseFunc),
  868. "google_pubsub_subscription_iam_policy": ResourceIamPolicy(IamPubsubSubscriptionSchema, NewPubsubSubscriptionIamUpdater, PubsubSubscriptionIdParseFunc),
  869. "google_runtimeconfig_config": resourceRuntimeconfigConfig(),
  870. "google_runtimeconfig_variable": resourceRuntimeconfigVariable(),
  871. "google_service_account": resourceGoogleServiceAccount(),
  872. "google_service_account_iam_binding": ResourceIamBinding(IamServiceAccountSchema, NewServiceAccountIamUpdater, ServiceAccountIdParseFunc),
  873. "google_service_account_iam_member": ResourceIamMember(IamServiceAccountSchema, NewServiceAccountIamUpdater, ServiceAccountIdParseFunc),
  874. "google_service_account_iam_policy": ResourceIamPolicy(IamServiceAccountSchema, NewServiceAccountIamUpdater, ServiceAccountIdParseFunc),
  875. "google_service_account_key": resourceGoogleServiceAccountKey(),
  876. "google_storage_bucket": resourceStorageBucket(),
  877. "google_storage_bucket_acl": resourceStorageBucketAcl(),
  878. "google_storage_bucket_object": resourceStorageBucketObject(),
  879. "google_storage_object_acl": resourceStorageObjectAcl(),
  880. "google_storage_default_object_acl": resourceStorageDefaultObjectAcl(),
  881. "google_storage_notification": resourceStorageNotification(),
  882. "google_storage_transfer_job": resourceStorageTransferJob(),
  883. },
  884. )
  885. }
  886. func providerConfigure(d *schema.ResourceData, p *schema.Provider, terraformVersion string) (interface{}, error) {
  887. config := Config{
  888. Project: d.Get("project").(string),
  889. Region: d.Get("region").(string),
  890. Zone: d.Get("zone").(string),
  891. UserProjectOverride: d.Get("user_project_override").(bool),
  892. terraformVersion: terraformVersion,
  893. }
  894. if v, ok := d.GetOk("request_timeout"); ok {
  895. var err error
  896. config.RequestTimeout, err = time.ParseDuration(v.(string))
  897. if err != nil {
  898. return nil, err
  899. }
  900. }
  901. // Add credential source
  902. if v, ok := d.GetOk("access_token"); ok {
  903. config.AccessToken = v.(string)
  904. } else if v, ok := d.GetOk("credentials"); ok {
  905. config.Credentials = v.(string)
  906. }
  907. scopes := d.Get("scopes").([]interface{})
  908. if len(scopes) > 0 {
  909. config.Scopes = make([]string, len(scopes))
  910. }
  911. for i, scope := range scopes {
  912. config.Scopes[i] = scope.(string)
  913. }
  914. batchCfg, err := expandProviderBatchingConfig(d.Get("batching"))
  915. if err != nil {
  916. return nil, err
  917. }
  918. config.BatchingConfig = batchCfg
  919. // Generated products
  920. config.AccessContextManagerBasePath = d.Get("access_context_manager_custom_endpoint").(string)
  921. config.AppEngineBasePath = d.Get("app_engine_custom_endpoint").(string)
  922. config.BigQueryBasePath = d.Get("big_query_custom_endpoint").(string)
  923. config.BigqueryDataTransferBasePath = d.Get("bigquery_data_transfer_custom_endpoint").(string)
  924. config.BigtableBasePath = d.Get("bigtable_custom_endpoint").(string)
  925. config.BinaryAuthorizationBasePath = d.Get("binary_authorization_custom_endpoint").(string)
  926. config.CloudBuildBasePath = d.Get("cloud_build_custom_endpoint").(string)
  927. config.CloudFunctionsBasePath = d.Get("cloud_functions_custom_endpoint").(string)
  928. config.CloudIotBasePath = d.Get("cloud_iot_custom_endpoint").(string)
  929. config.CloudRunBasePath = d.Get("cloud_run_custom_endpoint").(string)
  930. config.CloudSchedulerBasePath = d.Get("cloud_scheduler_custom_endpoint").(string)
  931. config.CloudTasksBasePath = d.Get("cloud_tasks_custom_endpoint").(string)
  932. config.ComputeBasePath = d.Get("compute_custom_endpoint").(string)
  933. config.ContainerAnalysisBasePath = d.Get("container_analysis_custom_endpoint").(string)
  934. config.DataCatalogBasePath = d.Get("data_catalog_custom_endpoint").(string)
  935. config.DataprocBasePath = d.Get("dataproc_custom_endpoint").(string)
  936. config.DatastoreBasePath = d.Get("datastore_custom_endpoint").(string)
  937. config.DeploymentManagerBasePath = d.Get("deployment_manager_custom_endpoint").(string)
  938. config.DialogflowBasePath = d.Get("dialogflow_custom_endpoint").(string)
  939. config.DNSBasePath = d.Get("dns_custom_endpoint").(string)
  940. config.FilestoreBasePath = d.Get("filestore_custom_endpoint").(string)
  941. config.FirestoreBasePath = d.Get("firestore_custom_endpoint").(string)
  942. config.HealthcareBasePath = d.Get("healthcare_custom_endpoint").(string)
  943. config.IapBasePath = d.Get("iap_custom_endpoint").(string)
  944. config.IdentityPlatformBasePath = d.Get("identity_platform_custom_endpoint").(string)
  945. config.KMSBasePath = d.Get("kms_custom_endpoint").(string)
  946. config.LoggingBasePath = d.Get("logging_custom_endpoint").(string)
  947. config.MLEngineBasePath = d.Get("ml_engine_custom_endpoint").(string)
  948. config.MonitoringBasePath = d.Get("monitoring_custom_endpoint").(string)
  949. config.NetworkManagementBasePath = d.Get("network_management_custom_endpoint").(string)
  950. config.OSLoginBasePath = d.Get("os_login_custom_endpoint").(string)
  951. config.PubsubBasePath = d.Get("pubsub_custom_endpoint").(string)
  952. config.RedisBasePath = d.Get("redis_custom_endpoint").(string)
  953. config.ResourceManagerBasePath = d.Get("resource_manager_custom_endpoint").(string)
  954. config.RuntimeConfigBasePath = d.Get("runtime_config_custom_endpoint").(string)
  955. config.SecretManagerBasePath = d.Get("secret_manager_custom_endpoint").(string)
  956. config.SecurityCenterBasePath = d.Get("security_center_custom_endpoint").(string)
  957. config.ServiceManagementBasePath = d.Get("service_management_custom_endpoint").(string)
  958. config.ServiceUsageBasePath = d.Get("service_usage_custom_endpoint").(string)
  959. config.SourceRepoBasePath = d.Get("source_repo_custom_endpoint").(string)
  960. config.SpannerBasePath = d.Get("spanner_custom_endpoint").(string)
  961. config.SQLBasePath = d.Get("sql_custom_endpoint").(string)
  962. config.StorageBasePath = d.Get("storage_custom_endpoint").(string)
  963. config.TPUBasePath = d.Get("tpu_custom_endpoint").(string)
  964. config.VPCAccessBasePath = d.Get("vpc_access_custom_endpoint").(string)
  965. // Handwritten Products / Versioned / Atypical Entries
  966. config.CloudBillingBasePath = d.Get(CloudBillingCustomEndpointEntryKey).(string)
  967. config.ComposerBasePath = d.Get(ComposerCustomEndpointEntryKey).(string)
  968. config.ComputeBetaBasePath = d.Get(ComputeBetaCustomEndpointEntryKey).(string)
  969. config.ContainerBasePath = d.Get(ContainerCustomEndpointEntryKey).(string)
  970. config.ContainerBetaBasePath = d.Get(ContainerBetaCustomEndpointEntryKey).(string)
  971. config.DataprocBetaBasePath = d.Get(DataprocBetaCustomEndpointEntryKey).(string)
  972. config.DataflowBasePath = d.Get(DataflowCustomEndpointEntryKey).(string)
  973. config.DnsBetaBasePath = d.Get(DnsBetaCustomEndpointEntryKey).(string)
  974. config.IamCredentialsBasePath = d.Get(IamCredentialsCustomEndpointEntryKey).(string)
  975. config.ResourceManagerV2Beta1BasePath = d.Get(ResourceManagerV2Beta1CustomEndpointEntryKey).(string)
  976. config.RuntimeConfigBasePath = d.Get(RuntimeConfigCustomEndpointEntryKey).(string)
  977. config.IAMBasePath = d.Get(IAMCustomEndpointEntryKey).(string)
  978. config.ServiceNetworkingBasePath = d.Get(ServiceNetworkingCustomEndpointEntryKey).(string)
  979. config.ServiceUsageBasePath = d.Get(ServiceUsageCustomEndpointEntryKey).(string)
  980. config.StorageTransferBasePath = d.Get(StorageTransferCustomEndpointEntryKey).(string)
  981. config.BigtableAdminBasePath = d.Get(BigtableAdminCustomEndpointEntryKey).(string)
  982. if err := config.LoadAndValidate(p.StopContext()); err != nil {
  983. return nil, err
  984. }
  985. return &config, nil
  986. }
  987. func validateCredentials(v interface{}, k string) (warnings []string, errors []error) {
  988. if v == nil || v.(string) == "" {
  989. return
  990. }
  991. creds := v.(string)
  992. // if this is a path and we can stat it, assume it's ok
  993. if _, err := os.Stat(creds); err == nil {
  994. return
  995. }
  996. if _, err := googleoauth.CredentialsFromJSON(context.Background(), []byte(creds)); err != nil {
  997. errors = append(errors,
  998. fmt.Errorf("JSON credentials in %q are not valid: %s", creds, err))
  999. }
  1000. return
  1001. }