Skip to content

Commit 3df7dda

Browse files
Add storage_control_folder_intelligence_config resource. (#13394) (#9644)
[upstream:d870a5c9889ca5b80c0bdc6027bfe94a371516f4] Signed-off-by: Modular Magician <[email protected]>
1 parent 6a28654 commit 3df7dda

10 files changed

+1288
-4
lines changed

.changelog/13394.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:new-resource
2+
`google_storage_control_folder_intelligence_config`
3+
```

google-beta/provider/provider_mmv1_resources.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,7 @@ var handwrittenDatasources = map[string]*schema.Resource{
387387
"google_storage_bucket_object": storage.DataSourceGoogleStorageBucketObject(),
388388
"google_storage_bucket_objects": storage.DataSourceGoogleStorageBucketObjects(),
389389
"google_storage_bucket_object_content": storage.DataSourceGoogleStorageBucketObjectContent(),
390+
"google_storage_control_folder_intelligence_config": storagecontrol.DataSourceGoogleStorageControlFolderIntelligenceConfig(),
390391
"google_storage_control_organization_intelligence_config": storagecontrol.DataSourceGoogleStorageControlOrganizationIntelligenceConfig(),
391392
"google_storage_control_project_intelligence_config": storagecontrol.DataSourceGoogleStorageControlProjectIntelligenceConfig(),
392393
"google_storage_object_signed_url": storage.DataSourceGoogleSignedUrl(),
@@ -552,9 +553,9 @@ var handwrittenIAMDatasources = map[string]*schema.Resource{
552553
}
553554

554555
// Resources
555-
// Generated resources: 631
556+
// Generated resources: 632
556557
// Generated IAM resources: 309
557-
// Total generated resources: 940
558+
// Total generated resources: 941
558559
var generatedResources = map[string]*schema.Resource{
559560
"google_folder_access_approval_settings": accessapproval.ResourceAccessApprovalFolderSettings(),
560561
"google_organization_access_approval_settings": accessapproval.ResourceAccessApprovalOrganizationSettings(),
@@ -1431,6 +1432,7 @@ var generatedResources = map[string]*schema.Resource{
14311432
"google_storage_hmac_key": storage.ResourceStorageHmacKey(),
14321433
"google_storage_managed_folder": storage.ResourceStorageManagedFolder(),
14331434
"google_storage_object_access_control": storage.ResourceStorageObjectAccessControl(),
1435+
"google_storage_control_folder_intelligence_config": storagecontrol.ResourceStorageControlFolderIntelligenceConfig(),
14341436
"google_storage_control_organization_intelligence_config": storagecontrol.ResourceStorageControlOrganizationIntelligenceConfig(),
14351437
"google_storage_control_project_intelligence_config": storagecontrol.ResourceStorageControlProjectIntelligenceConfig(),
14361438
"google_storage_insights_report_config": storageinsights.ResourceStorageInsightsReportConfig(),
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// Copyright (c) HashiCorp, Inc.
2+
// SPDX-License-Identifier: MPL-2.0
3+
package storagecontrol
4+
5+
import (
6+
"fmt"
7+
8+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
9+
"github.com/hashicorp/terraform-provider-google-beta/google-beta/tpgresource"
10+
transport_tpg "github.com/hashicorp/terraform-provider-google-beta/google-beta/transport"
11+
)
12+
13+
func DataSourceGoogleStorageControlFolderIntelligenceConfig() *schema.Resource {
14+
15+
dsSchema := tpgresource.DatasourceSchemaFromResourceSchema(ResourceStorageControlFolderIntelligenceConfig().Schema)
16+
tpgresource.AddRequiredFieldsToSchema(dsSchema, "name")
17+
18+
return &schema.Resource{
19+
Read: dataSourceGoogleStorageControlFolderIntelligenceConfigRead,
20+
Schema: dsSchema,
21+
}
22+
}
23+
24+
func dataSourceGoogleStorageControlFolderIntelligenceConfigRead(d *schema.ResourceData, meta interface{}) error {
25+
config := meta.(*transport_tpg.Config)
26+
27+
id, err := tpgresource.ReplaceVars(d, config, "folders/{{name}}/locations/global/intelligenceConfig")
28+
if err != nil {
29+
return fmt.Errorf("Error constructing id: %s", err)
30+
}
31+
d.SetId(id)
32+
err = resourceStorageControlFolderIntelligenceConfigRead(d, meta)
33+
if err != nil {
34+
return err
35+
}
36+
37+
if d.Id() == "" {
38+
return fmt.Errorf("%s not found", id)
39+
}
40+
41+
return nil
42+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
// Copyright (c) HashiCorp, Inc.
2+
// SPDX-License-Identifier: MPL-2.0
3+
// Copyright (c) HashiCorp, Inc.
4+
// SPDX-License-Identifier: MPL-2.0
5+
package storagecontrol_test
6+
7+
import (
8+
"testing"
9+
10+
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
11+
"github.com/hashicorp/terraform-provider-google-beta/google-beta/acctest"
12+
"github.com/hashicorp/terraform-provider-google-beta/google-beta/envvar"
13+
)
14+
15+
func TestAccDataSourceGoogleStorageControlFolderIntelligenceConfig_basic(t *testing.T) {
16+
t.Parallel()
17+
18+
context := map[string]interface{}{
19+
"random_suffix": acctest.RandString(t, 10),
20+
"org_id": envvar.GetTestOrgFromEnv(t),
21+
}
22+
23+
acctest.VcrTest(t, resource.TestCase{
24+
PreCheck: func() { acctest.AccTestPreCheck(t) },
25+
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
26+
ExternalProviders: map[string]resource.ExternalProvider{
27+
"time": {},
28+
},
29+
Steps: []resource.TestStep{
30+
{
31+
Config: testAccDataSourceGoogleStorageControlFolderIntelligenceConfig_basic(context),
32+
Check: resource.ComposeTestCheckFunc(
33+
acctest.CheckDataSourceStateMatchesResourceState("data.google_storage_control_folder_intelligence_config.folder_storage_intelligence", "google_storage_control_folder_intelligence_config.folder_storage_intelligence"),
34+
),
35+
},
36+
},
37+
})
38+
}
39+
40+
func testAccDataSourceGoogleStorageControlFolderIntelligenceConfig_basic(context map[string]interface{}) string {
41+
return acctest.Nprintf(`
42+
resource "google_folder" "folder" {
43+
parent = "organizations/%{org_id}"
44+
display_name = "tf-test-folder-name%{random_suffix}"
45+
deletion_protection=false
46+
}
47+
48+
resource "time_sleep" "wait_120_seconds" {
49+
depends_on = [google_folder.folder]
50+
create_duration = "120s"
51+
}
52+
53+
resource "google_storage_control_folder_intelligence_config" "folder_storage_intelligence" {
54+
name = google_folder.folder.folder_id
55+
edition_config = "STANDARD"
56+
depends_on = [time_sleep.wait_120_seconds]
57+
}
58+
59+
data "google_storage_control_folder_intelligence_config" "folder_storage_intelligence" {
60+
name = google_storage_control_folder_intelligence_config.folder_storage_intelligence.name
61+
}
62+
`, context)
63+
}

0 commit comments

Comments
 (0)