Skip to content

Commit 3087294

Browse files
Aman Singhravinitp
authored andcommitted
Added - Export and import of user defined sensitive types in Data Safe
1 parent d9a45fd commit 3087294

File tree

137 files changed

+4217
-179
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

137 files changed

+4217
-179
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
variable "tenancy_ocid" {}
5+
variable "user_ocid" {}
6+
variable "fingerprint" {}
7+
variable "private_key_path" {}
8+
variable "region" {}
9+
variable "compartment_ocid" {}
10+
variable "data_safe_masking_policy_id" {}
11+
12+
13+
14+
provider "oci" {
15+
tenancy_ocid = var.tenancy_ocid
16+
user_ocid = var.user_ocid
17+
fingerprint = var.fingerprint
18+
private_key_path = var.private_key_path
19+
region = var.region
20+
}
21+
22+
23+
data "oci_data_safe_masking_policy_referential_relations" "test_masking_policy_referential_relations" {
24+
#Required
25+
masking_policy_id = var.data_safe_masking_policy_id
26+
27+
}
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
variable "tenancy_ocid" {}
2+
variable "user_ocid" {}
3+
variable "fingerprint" {}
4+
variable "private_key_path" {}
5+
variable "region" {}
6+
variable "compartment_ocid" {}
7+
variable "data_safe_target_ocid" {}
8+
9+
provider "oci" {
10+
tenancy_ocid = var.tenancy_ocid
11+
user_ocid = var.user_ocid
12+
fingerprint = var.fingerprint
13+
private_key_path = var.private_key_path
14+
region = var.region
15+
}
16+
17+
variable "relation_type" {
18+
default = "APP_DEFINED"
19+
}
20+
21+
variable "is_sensitive" {
22+
default = false
23+
}
24+
25+
variable "sensitive_data_model_display_name" {
26+
default = "displayName"
27+
}
28+
variable "sensitive_data_model_schemas_for_discovery" {
29+
default = []
30+
}
31+
32+
variable "sensitive_data_model_sensitive_type_ids_for_discovery" {
33+
default = []
34+
}
35+
36+
resource "oci_data_safe_sensitive_data_model" "test_sensitive_data_model" {
37+
#Required
38+
compartment_id = var.compartment_ocid
39+
target_id = var.data_safe_target_ocid
40+
41+
#Optional
42+
display_name = var.sensitive_data_model_display_name
43+
schemas_for_discovery = var.sensitive_data_model_schemas_for_discovery
44+
sensitive_type_ids_for_discovery = var.sensitive_data_model_sensitive_type_ids_for_discovery
45+
}
46+
47+
resource "oci_data_safe_sensitive_data_model_referential_relation" "test_sensitive_data_model_referential_relation" {
48+
#Required
49+
sensitive_data_model_id = oci_data_safe_sensitive_data_model.test_sensitive_data_model.id
50+
relation_type = var.relation_type
51+
parent {
52+
app_name = "HR"
53+
column_group = ["EMAIL"]
54+
object = "EMPLOYEES"
55+
object_type = "TABLE"
56+
schema_name = "HR"
57+
}
58+
child {
59+
app_name = "HR"
60+
column_group = ["FIRST_NAME"]
61+
object = "EMPLOYEES"
62+
object_type = "TABLE"
63+
schema_name = "HR"
64+
}
65+
is_sensitive = var.is_sensitive
66+
}
67+
68+
data "oci_data_safe_sensitive_data_model_referential_relations" "test_sensitive_data_model_referential_relations" {
69+
#Required
70+
sensitive_data_model_id = oci_data_safe_sensitive_data_model.test_sensitive_data_model.id
71+
72+
#Optional
73+
relation_type = [oci_data_safe_sensitive_data_model_referential_relation.test_sensitive_data_model_referential_relation.relation_type]
74+
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
variable "tenancy_ocid" {}
5+
variable "user_ocid" {}
6+
variable "fingerprint" {}
7+
variable "private_key_path" {}
8+
variable "region" {}
9+
variable "compartment_ocid" {}
10+
11+
provider "oci" {
12+
tenancy_ocid = var.tenancy_ocid
13+
user_ocid = var.user_ocid
14+
fingerprint = var.fingerprint
15+
private_key_path = var.private_key_path
16+
region = var.region
17+
}
18+
19+
variable "sensitive_types_export_is_include_all_sensitive_types" {
20+
default = true
21+
}
22+
23+
variable "sensitive_types_export_display_name" {
24+
default = "displayName"
25+
}
26+
27+
variable "sensitive_types_export_description" {
28+
default = "description"
29+
}
30+
31+
variable "sensitive_types_export_freeform_tags" {
32+
default = { "Department" = "Finance" }
33+
}
34+
35+
variable "sensitive_types_export_access_level" {
36+
default = "ACCESSIBLE"
37+
}
38+
39+
variable "sensitive_types_export_compartment_id_in_subtree" {
40+
default = true
41+
}
42+
43+
variable "sensitive_types_export_state" {
44+
default = "ACTIVE"
45+
}
46+
47+
variable "sensitive_types_export_time_created_less_than" {
48+
default = "2038-01-01T00:00:00.000Z"
49+
}
50+
51+
resource "oci_data_safe_sensitive_types_export" "test_sensitive_types_export" {
52+
#Required
53+
compartment_id = var.compartment_ocid
54+
is_include_all_sensitive_types = var.sensitive_types_export_is_include_all_sensitive_types
55+
56+
#Optional
57+
display_name = var.sensitive_types_export_display_name
58+
description = var.sensitive_types_export_description
59+
freeform_tags = var.sensitive_types_export_freeform_tags
60+
}
61+
62+
data "oci_data_safe_sensitive_types_exports" "test_sensitive_types_exports" {
63+
#Required
64+
compartment_id = var.compartment_ocid
65+
66+
#Optional
67+
access_level = var.sensitive_types_export_access_level
68+
compartment_id_in_subtree = var.sensitive_types_export_compartment_id_in_subtree
69+
display_name = var.sensitive_types_export_display_name
70+
state = var.sensitive_types_export_state
71+
time_created_less_than = var.sensitive_types_export_time_created_less_than
72+
}
73+
74+
data "oci_data_safe_sensitive_types_export" "test_sensitive_types_export" {
75+
sensitive_types_export_id = oci_data_safe_sensitive_types_export.test_sensitive_types_export.id
76+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
variable "tenancy_ocid" {}
5+
variable "user_ocid" {}
6+
variable "fingerprint" {}
7+
variable "private_key_path" {}
8+
variable "region" {}
9+
variable "compartment_ocid" {}
10+
variable "data_safe_user_assessment_id" {}
11+
12+
variable "ua_password_expiry_analytic_compartment_id_in_subtree" {
13+
default = true
14+
}
15+
16+
variable "ua_password_expiry_analytic_access_level" {
17+
default = "RESTRICTED"
18+
}
19+
20+
variable "ua_password_expiry_analytic_time_less_than"{
21+
default = "2038-01-01T00:00:00.000Z"
22+
}
23+
24+
variable "ua_password_expiry_analytic_user_category" {
25+
default = "HIGH"
26+
}
27+
28+
provider "oci" {
29+
tenancy_ocid = var.tenancy_ocid
30+
user_ocid = var.user_ocid
31+
fingerprint = var.fingerprint
32+
private_key_path = var.private_key_path
33+
region = var.region
34+
}
35+
36+
data "oci_data_safe_user_assessment_password_expiry_date_analytics" "test_user_assessment_password_expiry_date_analytics" {
37+
#Required
38+
user_assessment_id = var.data_safe_user_assessment_id
39+
40+
#Optional
41+
compartment_id_in_subtree = var.ua_password_expiry_analytic_compartment_id_in_subtree
42+
access_level = var.ua_password_expiry_analytic_access_level
43+
time_password_expiry_less_than = var.ua_password_expiry_analytic_time_less_than
44+
user_category = var.ua_password_expiry_analytic_user_category
45+
}

internal/integrationtest/data_safe_masking_policy_health_report_log_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,12 @@ func TestDataSafeMaskingPolicyHealthReportLogResource_basic(t *testing.T) {
4545
// verify datasource
4646
{
4747
Config: config +
48-
acctest.GenerateDataSourceFromRepresentationMap("oci_data_safe_masking_policy_health_report_logs", "test_masking_policy_health_report_logs", acctest.Required, acctest.Create, DataSafeMaskingPolicyHealthReportLogDataSourceRepresentation) +
48+
acctest.GenerateDataSourceFromRepresentationMap("oci_data_safe_masking_policy_health_report_logs", "test_masking_policy_health_report_logs", acctest.Optional, acctest.Create, DataSafeMaskingPolicyHealthReportLogDataSourceRepresentation) +
4949
compartmentIdVariableStr + healthReportIdVariableStr + DataSafeMaskingPolicyHealthReportLogResourceConfig,
5050
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
5151
resource.TestCheckResourceAttrSet(datasourceName, "masking_policy_health_report_id"),
52+
resource.TestCheckResourceAttrSet(datasourceName, "message_type"),
53+
resource.TestCheckResourceAttrSet(datasourceName, "masking_policy_health_report_log_collection.0.items.0.health_check_type"),
5254
),
5355
},
5456
})

internal/integrationtest/data_safe_masking_policy_health_report_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,11 @@ func TestDataSafeMaskingPolicyHealthReportResource_basic(t *testing.T) {
6868
compartmentIdVariableStr,
6969
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
7070
resource.TestCheckResourceAttr(datasourceName, "compartment_id", compartmentId),
71+
resource.TestCheckResourceAttr(datasourceName, "masking_policy_health_report_collection.0.items.#", "1"),
72+
resource.TestCheckResourceAttrSet(datasourceName, "masking_policy_health_report_collection.0.items.0.masking_policy_id"),
73+
resource.TestCheckResourceAttrSet(datasourceName, "masking_policy_health_report_collection.0.items.0.display_name"),
74+
resource.TestCheckResourceAttrSet(datasourceName, "masking_policy_health_report_collection.0.items.0.error_count"),
75+
resource.TestCheckResourceAttrSet(datasourceName, "masking_policy_health_report_collection.0.items.0.warning_count"),
7176
),
7277
},
7378
// verify singular datasource
@@ -80,10 +85,12 @@ func TestDataSafeMaskingPolicyHealthReportResource_basic(t *testing.T) {
8085

8186
resource.TestCheckResourceAttrSet(singularDatasourceName, "compartment_id"),
8287
resource.TestCheckResourceAttrSet(singularDatasourceName, "display_name"),
88+
resource.TestCheckResourceAttrSet(singularDatasourceName, "error_count"),
8389
resource.TestCheckResourceAttrSet(singularDatasourceName, "id"),
8490
resource.TestCheckResourceAttrSet(singularDatasourceName, "state"),
8591
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"),
8692
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_updated"),
93+
resource.TestCheckResourceAttrSet(singularDatasourceName, "warning_count"),
8794
),
8895
},
8996
})
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
package integrationtest
5+
6+
import (
7+
"fmt"
8+
"testing"
9+
10+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
11+
12+
"github.com/oracle/terraform-provider-oci/httpreplay"
13+
"github.com/oracle/terraform-provider-oci/internal/acctest"
14+
15+
"github.com/oracle/terraform-provider-oci/internal/utils"
16+
)
17+
18+
var (
19+
DataSafeMaskingPolicyReferentialRelationDataSourceRepresentation = map[string]interface{}{
20+
"masking_policy_id": acctest.Representation{RepType: acctest.Required, Create: `${var.masking_policy_id}`},
21+
"relation_type": acctest.Representation{RepType: acctest.Optional, Create: []string{`DB_DEFINED`}},
22+
"schema_name": acctest.Representation{RepType: acctest.Optional, Create: []string{`HR`}},
23+
"column_name": acctest.Representation{RepType: acctest.Optional, Create: []string{`EMPLOYEE_ID`}},
24+
"object": acctest.Representation{RepType: acctest.Optional, Create: []string{`EMPLOYEES`}},
25+
}
26+
27+
DataSafeMaskingPolicyReferentialRelationResourceConfig = ""
28+
)
29+
30+
// issue-routing-tag: data_safe/default
31+
func TestDataSafeMaskingPolicyReferentialRelationResource_basic(t *testing.T) {
32+
httpreplay.SetScenario("TestDataSafeMaskingPolicyReferentialRelationResource_basic")
33+
defer httpreplay.SaveScenario()
34+
35+
config := acctest.ProviderTestConfig()
36+
37+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
38+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
39+
40+
maskingPolicyId := utils.GetEnvSettingWithBlankDefault("data_safe_masking_policy_id")
41+
maskingPolicyIdVariableStr := fmt.Sprintf("variable \"masking_policy_id\" { default = \"%s\" }\n", maskingPolicyId)
42+
43+
datasourceName := "data.oci_data_safe_masking_policy_referential_relations.test_masking_policy_referential_relations"
44+
45+
acctest.SaveConfigContent("", "", "", t)
46+
47+
acctest.ResourceTest(t, nil, []resource.TestStep{
48+
// verify datasource
49+
{
50+
Config: config +
51+
acctest.GenerateDataSourceFromRepresentationMap("oci_data_safe_masking_policy_referential_relations", "test_masking_policy_referential_relations", acctest.Optional, acctest.Create, DataSafeMaskingPolicyReferentialRelationDataSourceRepresentation) +
52+
compartmentIdVariableStr + maskingPolicyIdVariableStr + DataSafeMaskingPolicyReferentialRelationResourceConfig,
53+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
54+
resource.TestCheckResourceAttrSet(datasourceName, "masking_policy_id"),
55+
resource.TestCheckResourceAttr(datasourceName, "relation_type.0", "DB_DEFINED"),
56+
resource.TestCheckResourceAttr(datasourceName, "schema_name.0", "HR"),
57+
resource.TestCheckResourceAttr(datasourceName, "column_name.0", "EMPLOYEE_ID"),
58+
resource.TestCheckResourceAttr(datasourceName, "object.0", "EMPLOYEES"),
59+
60+
resource.TestCheckResourceAttrSet(datasourceName, "masking_policy_referential_relation_collection.#"),
61+
resource.TestCheckResourceAttr(datasourceName, "masking_policy_referential_relation_collection.0.items.#", "5"),
62+
),
63+
},
64+
})
65+
}

internal/integrationtest/data_safe_security_assessment_test.go

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ var (
6565
}
6666

6767
ignoreChangesSecurityAssessmentRepresentation = map[string]interface{}{
68-
"ignore_changes": acctest.Representation{RepType: acctest.Required, Create: []string{`defined_tags`}},
68+
"ignore_changes": acctest.Representation{RepType: acctest.Required, Create: []string{`defined_tags`, `freeform_tags`, `system_tags`}},
6969
}
7070

7171
DataSafeSecurityAssessmentResourceDependencies = DefinedTagsDependencies
@@ -106,7 +106,6 @@ func TestDataSafeSecurityAssessmentResource_basic(t *testing.T) {
106106
acctest.GenerateResourceFromRepresentationMap("oci_data_safe_security_assessment", "test_security_assessment", acctest.Required, acctest.Create, securityAssessmentRepresentation),
107107
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
108108
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
109-
resource.TestCheckResourceAttrSet(resourceName, "target_id"),
110109

111110
func(s *terraform.State) (err error) {
112111
resId, err = acctest.FromInstanceState(s, resourceName, "id")
@@ -127,9 +126,9 @@ func TestDataSafeSecurityAssessmentResource_basic(t *testing.T) {
127126
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
128127
resource.TestCheckResourceAttr(resourceName, "description", "description"),
129128
resource.TestCheckResourceAttr(resourceName, "display_name", "EBS assessment"),
130-
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
129+
resource.TestCheckResourceAttrSet(resourceName, "freeform_tags.%"),
131130
resource.TestCheckResourceAttrSet(resourceName, "id"),
132-
resource.TestCheckResourceAttr(resourceName, "is_assessment_scheduled", "false"),
131+
resource.TestCheckResourceAttr(resourceName, "is_assessment_scheduled", "true"),
133132
resource.TestCheckResourceAttrSet(resourceName, "state"),
134133
resource.TestCheckResourceAttrSet(resourceName, "target_id"),
135134
resource.TestCheckResourceAttrSet(resourceName, "time_created"),
@@ -159,7 +158,7 @@ func TestDataSafeSecurityAssessmentResource_basic(t *testing.T) {
159158
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentIdU),
160159
resource.TestCheckResourceAttr(resourceName, "description", "description"),
161160
resource.TestCheckResourceAttr(resourceName, "display_name", "EBS assessment"),
162-
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
161+
resource.TestCheckResourceAttrSet(resourceName, "freeform_tags.%"),
163162
resource.TestCheckResourceAttrSet(resourceName, "id"),
164163
resource.TestCheckResourceAttr(resourceName, "is_assessment_scheduled", "true"),
165164
resource.TestCheckResourceAttrSet(resourceName, "state"),
@@ -183,7 +182,7 @@ func TestDataSafeSecurityAssessmentResource_basic(t *testing.T) {
183182
acctest.GenerateResourceFromRepresentationMap("oci_data_safe_security_assessment", "test_security_assessment", acctest.Required, acctest.Update, securityAssessmentChangeCompartmentRepresentation),
184183
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
185184
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
186-
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
185+
resource.TestCheckResourceAttrSet(resourceName, "freeform_tags.%"),
187186
resource.TestCheckResourceAttrSet(resourceName, "id"),
188187
resource.TestCheckResourceAttr(resourceName, "is_assessment_scheduled", "true"),
189188
resource.TestCheckResourceAttrSet(resourceName, "state"),
@@ -214,7 +213,7 @@ func TestDataSafeSecurityAssessmentResource_basic(t *testing.T) {
214213

215214
resource.TestCheckResourceAttr(datasourceName, "security_assessments.#", "1"),
216215
resource.TestCheckResourceAttr(datasourceName, "security_assessments.0.compartment_id", compartmentId),
217-
resource.TestCheckResourceAttr(datasourceName, "security_assessments.0.freeform_tags.%", "1"),
216+
resource.TestCheckResourceAttrSet(datasourceName, "security_assessments.0.freeform_tags.%"),
218217
resource.TestCheckResourceAttrSet(datasourceName, "security_assessments.0.id"),
219218
resource.TestCheckResourceAttrSet(datasourceName, "security_assessments.0.is_baseline"),
220219
resource.TestCheckResourceAttrSet(datasourceName, "security_assessments.0.state"),
@@ -237,7 +236,7 @@ func TestDataSafeSecurityAssessmentResource_basic(t *testing.T) {
237236
resource.TestCheckResourceAttr(singularDatasourceName, "compartment_id", compartmentId),
238237
resource.TestCheckResourceAttr(singularDatasourceName, "description", "description2"),
239238
resource.TestCheckResourceAttr(singularDatasourceName, "display_name", "displayName2"),
240-
resource.TestCheckResourceAttr(singularDatasourceName, "freeform_tags.%", "1"),
239+
resource.TestCheckResourceAttrSet(singularDatasourceName, "freeform_tags.%"),
241240
resource.TestCheckResourceAttrSet(singularDatasourceName, "id"),
242241
resource.TestCheckResourceAttr(singularDatasourceName, "is_assessment_scheduled", "true"),
243242
resource.TestCheckResourceAttrSet(singularDatasourceName, "is_baseline"),

0 commit comments

Comments
 (0)