Skip to content

Commit caadd9e

Browse files
aysinghavsin12
authored andcommitted
Added - Support for BYODKIM
1 parent afbfde4 commit caadd9e

11 files changed

+99
-17
lines changed

examples/email/dkim.tf

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
variable "byodkim_name" {
2+
default = "test-selector-2"
3+
}
4+
15
variable "dkim_name" {
26
default = "test-selector-1"
37
}
@@ -6,11 +10,26 @@ variable "dkim_description" {
610
default = "Test DKIM"
711
}
812

9-
resource "oci_email_dkim" "testdkim" {
13+
variable "private_key" {
14+
default = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDYOJHqR6O6TofL3eUshL+yDN9sTDSDCmSMe5hapcu1Cj6zjXLbPvEUM+SZd2MrBaAfh5HaiM0U3hQgPX//6zAewT95n5K94qnCo1yKBYpt81lnY5PRcePOE0wuFQ8EqqJNbIPFojYLpoyKazB7ulCiA1y6Zk5ZzUolxNslnRwjWtNidC62ureDbDsE28LVhHron7+s5StR5cMTRUxU1nU3KeOluUS2YwJQzvdAQiDn9PHnG0k7p9+Cam0mlNPgPUKIKmFigx+WBrrI5k1yxyYVjbwTQgl7J7bEz0kZZJLN0Tb1UVfIe+yTDz9iZgMDZ0+spo9FA4UEpQiHsr3Cih6XAgMBAAECggEADtEZlq9gFeVJwvuqt7lFFaNyMA6szooIx+O0Vgnkgrx3/X/k7gdLJ/JCaQ3YWttg1KhKo2oae6KYSHlOazAntQPTILeBq8d7kJ33OnIUwWIar04QlBq03KtP3hyNUemLg7i68vEhuPypxtZ/lQr4eZG3agKWveqmeR4bUmGIyxdO6GaXQMoGo8javYylS02X3uW/jTT4cXWcnslBibQ48CeGS7fuxGHHoZgU0qq3JDlO2KZtOjnmMvwqhAlnCgcd0EX1exsddWXhi2R7ONMRXT/0XG16AVFUumqU5c1E3qNpB+/OR7GO1eIxXsIIN/lBBLblIuETV0naoEeIR0cC4QKBgQD/bEe8cqJlICDDBucNLviTXU2xWHbg4rik1l+NxcN5oRuF0klEklCKPeoiruwFuOxjR4v+E5E6OY/X3lEdVbm7sQpX5rU5Ql9Mkuikniq0gji3aG1fgp1S+rltie1IwIvWWJII5SKrl5zk+K/1F2fiYIeS3xDpBXZAEuYkmDlXcQKBgQDYtZ4v1gGqz2avqSurVgIBKuSy5lQW4RCctGHvaaMMqmE5GipCId/2toIxCm/TTnkw2xy5iLN+TRu1ejQlnXyjbv5rWpg6Ud4ZfS+dspBZKQDndcUxBb8AOEEa3mfNnqtf2fpLNiBHHQUQbQ0n+Mvlk0P9RCIF8cakw8vTUbAihwKBgQDRovB5xehtcWIST68BTgTtBk5G+WGQj+SWPfBtLtySDl3FhuNlqWT7IXfygXjr9WvmzAklPrAahrX9qdUPa5Wma9cecBdbaJNJCOZyffJ09tBQECB8nHo9adUZB3Q+GvJquYUaUd4T0bsO3uGkGlLEJRAAxp5dcoMscZZ8gIfHsQKBgQCwlu6cVGtvYSpwIg5vw9pGUUmjboU/T49V4rebfB1diMlI2sVstmXmiLp2c+bD7cJbyXESzw5U8UiPDVHJBRg3pY60tFIv096ELrrKamOuA/e0pQdW9zO5Xh3PY0R7DbzgkqOe/jA3QrKJvBNoaxjbrrFMhGSlK2uPf+1r+bjpqQKBgQDvSKV73DAKgi0SWreJsBxzJ5qXTj5vcFfu4ySYzoCabfyH6sSokhRUHrzT0V3I+oF0N84IqoDX4CxnNmmu4DvZx30geMSlkFEzY2hPktEcO3nyEgBEFd8PVIp3NqL9u3N8rfQIfy8kudoeZWg3+9sjIFkEiX/HghFf4tt7qcGRwg=="
15+
}
16+
17+
resource "oci_email_dkim" "testbyodkim" {
1018
#Required
1119
email_domain_id = oci_email_email_domain.test_email_domain.id
1220
#Optional
1321
description = var.dkim_description
14-
name = var.dkim_name
22+
name = var.byodkim_name
23+
private_key = var.private_key
1524
depends_on = [oci_email_email_domain.test_email_domain]
1625
}
26+
27+
resource "oci_email_dkim" "testdkim" {
28+
#Required
29+
email_domain_id = oci_email_email_domain.test_email_domain.id
30+
#Optional
31+
description = var.dkim_description
32+
name = var.dkim_name
33+
depends_on = [oci_email_email_domain.test_email_domain]
34+
}
35+

internal/integrationtest/email_dkim_test.go

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ import (
2626
)
2727

2828
var (
29+
ignoreDkimBaseDefinedTagsChangesRepresentation = map[string]interface{}{
30+
"ignore_changes": acctest.Representation{RepType: acctest.Required, Create: []string{`defined_tags`}},
31+
}
2932
EmailDkimRequiredOnlyResource = EmailDkimResourceDependencies +
3033
acctest.GenerateResourceFromRepresentationMap("oci_email_dkim", "test_dkim", acctest.Required, acctest.Create, EmailDkimRepresentation)
3134

@@ -53,6 +56,8 @@ var (
5356
"description": acctest.Representation{RepType: acctest.Optional, Create: `description`, Update: `description`},
5457
"freeform_tags": acctest.Representation{RepType: acctest.Optional, Create: map[string]string{"Department": "Finance"}, Update: map[string]string{"Department": "Finance"}},
5558
"name": acctest.Representation{RepType: acctest.Optional, Create: `testselector1`},
59+
"private_key": acctest.Representation{RepType: acctest.Optional, Create: `MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDYOJHqR6O6TofL3eUshL+yDN9sTDSDCmSMe5hapcu1Cj6zjXLbPvEUM+SZd2MrBaAfh5HaiM0U3hQgPX//6zAewT95n5K94qnCo1yKBYpt81lnY5PRcePOE0wuFQ8EqqJNbIPFojYLpoyKazB7ulCiA1y6Zk5ZzUolxNslnRwjWtNidC62ureDbDsE28LVhHron7+s5StR5cMTRUxU1nU3KeOluUS2YwJQzvdAQiDn9PHnG0k7p9+Cam0mlNPgPUKIKmFigx+WBrrI5k1yxyYVjbwTQgl7J7bEz0kZZJLN0Tb1UVfIe+yTDz9iZgMDZ0+spo9FA4UEpQiHsr3Cih6XAgMBAAECggEADtEZlq9gFeVJwvuqt7lFFaNyMA6szooIx+O0Vgnkgrx3/X/k7gdLJ/JCaQ3YWttg1KhKo2oae6KYSHlOazAntQPTILeBq8d7kJ33OnIUwWIar04QlBq03KtP3hyNUemLg7i68vEhuPypxtZ/lQr4eZG3agKWveqmeR4bUmGIyxdO6GaXQMoGo8javYylS02X3uW/jTT4cXWcnslBibQ48CeGS7fuxGHHoZgU0qq3JDlO2KZtOjnmMvwqhAlnCgcd0EX1exsddWXhi2R7ONMRXT/0XG16AVFUumqU5c1E3qNpB+/OR7GO1eIxXsIIN/lBBLblIuETV0naoEeIR0cC4QKBgQD/bEe8cqJlICDDBucNLviTXU2xWHbg4rik1l+NxcN5oRuF0klEklCKPeoiruwFuOxjR4v+E5E6OY/X3lEdVbm7sQpX5rU5Ql9Mkuikniq0gji3aG1fgp1S+rltie1IwIvWWJII5SKrl5zk+K/1F2fiYIeS3xDpBXZAEuYkmDlXcQKBgQDYtZ4v1gGqz2avqSurVgIBKuSy5lQW4RCctGHvaaMMqmE5GipCId/2toIxCm/TTnkw2xy5iLN+TRu1ejQlnXyjbv5rWpg6Ud4ZfS+dspBZKQDndcUxBb8AOEEa3mfNnqtf2fpLNiBHHQUQbQ0n+Mvlk0P9RCIF8cakw8vTUbAihwKBgQDRovB5xehtcWIST68BTgTtBk5G+WGQj+SWPfBtLtySDl3FhuNlqWT7IXfygXjr9WvmzAklPrAahrX9qdUPa5Wma9cecBdbaJNJCOZyffJ09tBQECB8nHo9adUZB3Q+GvJquYUaUd4T0bsO3uGkGlLEJRAAxp5dcoMscZZ8gIfHsQKBgQCwlu6cVGtvYSpwIg5vw9pGUUmjboU/T49V4rebfB1diMlI2sVstmXmiLp2c+bD7cJbyXESzw5U8UiPDVHJBRg3pY60tFIv096ELrrKamOuA/e0pQdW9zO5Xh3PY0R7DbzgkqOe/jA3QrKJvBNoaxjbrrFMhGSlK2uPf+1r+bjpqQKBgQDvSKV73DAKgi0SWreJsBxzJ5qXTj5vcFfu4ySYzoCabfyH6sSokhRUHrzT0V3I+oF0N84IqoDX4CxnNmmu4DvZx30geMSlkFEzY2hPktEcO3nyEgBEFd8PVIp3NqL9u3N8rfQIfy8kudoeZWg3+9sjIFkEiX/HghFf4tt7qcGRwg==`},
60+
"lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: ignoreDkimBaseDefinedTagsChangesRepresentation},
5661
}
5762

5863
EmailDkimResourceDependencies = acctest.GenerateResourceFromRepresentationMap("oci_email_email_domain", "test_email_domain", acctest.Required, acctest.Create, EmailEmailDomainRepresentation) +
@@ -105,6 +110,7 @@ func TestEmailDkimResource_basic(t *testing.T) {
105110
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
106111
resource.TestCheckResourceAttrSet(resourceName, "id"),
107112
resource.TestCheckResourceAttr(resourceName, "name", "testselector1"),
113+
resource.TestCheckResourceAttrSet(resourceName, "private_key"),
108114

109115
func(s *terraform.State) (err error) {
110116
resId, err = acctest.FromInstanceState(s, resourceName, "id")
@@ -128,6 +134,7 @@ func TestEmailDkimResource_basic(t *testing.T) {
128134
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
129135
resource.TestCheckResourceAttrSet(resourceName, "id"),
130136
resource.TestCheckResourceAttr(resourceName, "name", "testselector1"),
137+
resource.TestCheckResourceAttrSet(resourceName, "private_key"),
131138

132139
func(s *terraform.State) (err error) {
133140
resId2, err = acctest.FromInstanceState(s, resourceName, "id")
@@ -168,6 +175,8 @@ func TestEmailDkimResource_basic(t *testing.T) {
168175
resource.TestCheckResourceAttrSet(singularDatasourceName, "dns_subdomain_name"),
169176
resource.TestCheckResourceAttr(singularDatasourceName, "freeform_tags.%", "1"),
170177
resource.TestCheckResourceAttrSet(singularDatasourceName, "id"),
178+
resource.TestCheckResourceAttrSet(singularDatasourceName, "is_imported"),
179+
resource.TestCheckResourceAttrSet(singularDatasourceName, "key_length"),
171180
resource.TestCheckResourceAttr(singularDatasourceName, "name", "testselector1"),
172181
resource.TestCheckResourceAttrSet(singularDatasourceName, "state"),
173182
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"),
@@ -177,11 +186,13 @@ func TestEmailDkimResource_basic(t *testing.T) {
177186
},
178187
// verify resource import
179188
{
180-
Config: config + EmailDkimRequiredOnlyResource,
181-
ImportState: true,
182-
ImportStateVerify: true,
183-
ImportStateVerifyIgnore: []string{},
184-
ResourceName: resourceName,
189+
Config: config + EmailDkimRequiredOnlyResource,
190+
ImportState: true,
191+
ImportStateVerify: true,
192+
ImportStateVerifyIgnore: []string{
193+
"private_key",
194+
},
195+
ResourceName: resourceName,
185196
},
186197
})
187198
}

internal/service/email/email_dkim_data_source.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,14 @@ func (s *EmailDkimDataSourceCrud) SetData() error {
9292

9393
s.D.Set("freeform_tags", s.Res.FreeformTags)
9494

95+
if s.Res.IsImported != nil {
96+
s.D.Set("is_imported", *s.Res.IsImported)
97+
}
98+
99+
if s.Res.KeyLength != nil {
100+
s.D.Set("key_length", *s.Res.KeyLength)
101+
}
102+
95103
if s.Res.LifecycleDetails != nil {
96104
s.D.Set("lifecycle_details", *s.Res.LifecycleDetails)
97105
}

internal/service/email/email_dkim_resource.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,13 @@ func EmailDkimResource() *schema.Resource {
6363
Computed: true,
6464
ForceNew: true,
6565
},
66+
"private_key": {
67+
Type: schema.TypeString,
68+
Optional: true,
69+
Computed: true,
70+
ForceNew: true,
71+
Sensitive: true,
72+
},
6673

6774
// Computed
6875
"cname_record_value": {
@@ -77,6 +84,14 @@ func EmailDkimResource() *schema.Resource {
7784
Type: schema.TypeString,
7885
Computed: true,
7986
},
87+
"is_imported": {
88+
Type: schema.TypeBool,
89+
Computed: true,
90+
},
91+
"key_length": {
92+
Type: schema.TypeInt,
93+
Computed: true,
94+
},
8095
"lifecycle_details": {
8196
Type: schema.TypeString,
8297
Computed: true,
@@ -205,6 +220,11 @@ func (s *EmailDkimResourceCrud) Create() error {
205220
request.Name = &tmp
206221
}
207222

223+
if privateKey, ok := s.D.GetOkExists("private_key"); ok {
224+
tmp := privateKey.(string)
225+
request.PrivateKey = &tmp
226+
}
227+
208228
request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "email")
209229

210230
response, err := s.Client.CreateDkim(context.Background(), request)
@@ -436,6 +456,14 @@ func (s *EmailDkimResourceCrud) SetData() error {
436456

437457
s.D.Set("freeform_tags", s.Res.FreeformTags)
438458

459+
if s.Res.IsImported != nil {
460+
s.D.Set("is_imported", *s.Res.IsImported)
461+
}
462+
463+
if s.Res.KeyLength != nil {
464+
s.D.Set("key_length", *s.Res.KeyLength)
465+
}
466+
439467
if s.Res.LifecycleDetails != nil {
440468
s.D.Set("lifecycle_details", *s.Res.LifecycleDetails)
441469
}
@@ -490,6 +518,14 @@ func DkimSummaryToMap(obj oci_email.DkimSummary) map[string]interface{} {
490518
result["id"] = string(*obj.Id)
491519
}
492520

521+
if obj.IsImported != nil {
522+
result["is_imported"] = bool(*obj.IsImported)
523+
}
524+
525+
if obj.KeyLength != nil {
526+
result["key_length"] = int(*obj.KeyLength)
527+
}
528+
493529
if obj.Name != nil {
494530
result["name"] = string(*obj.Name)
495531
}

website/docs/d/email_dkim.html.markdown

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ The following attributes are exported:
4040
* `email_domain_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the email domain that this DKIM belongs to.
4141
* `freeform_tags` - Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
4242
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DKIM.
43+
* `is_imported` - Indicates whether the DKIM was imported.
44+
* `key_length` - Length of the RSA key used in the DKIM.
4345
* `lifecycle_details` - A message describing the current state in more detail. For example, can be used to provide actionable information for a resource.
4446
* `name` - The DKIM selector. If the same domain is managed in more than one region, each region must use different selectors.
4547
* `state` - The current state of the DKIM.

website/docs/d/email_dkims.html.markdown

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ The following attributes are exported:
5454
* `email_domain_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the email domain that this DKIM belongs to.
5555
* `freeform_tags` - Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
5656
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DKIM.
57+
* `is_imported` - Indicates whether the DKIM was imported.
58+
* `key_length` - Length of the RSA key used in the DKIM.
5759
* `lifecycle_details` - A message describing the current state in more detail. For example, can be used to provide actionable information for a resource.
5860
* `name` - The DKIM selector. If the same domain is managed in more than one region, each region must use different selectors.
5961
* `state` - The current state of the DKIM.

website/docs/d/email_email_return_paths.html.markdown

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ data "oci_email_email_return_paths" "test_email_return_paths" {
2121
compartment_id = var.compartment_id
2222
id = var.email_return_path_id
2323
name = var.email_return_path_name
24-
parent_resource_id = oci_usage_proxy_resource.test_resource.id
24+
parent_resource_id = oci_cloud_guard_resource.test_resource.id
2525
state = var.email_return_path_state
2626
}
2727
```

website/docs/guides/resource_discovery.html.markdown

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -745,6 +745,7 @@ email
745745
* oci\_email\_sender
746746
* oci\_email\_email\_domain
747747
* oci\_email\_dkim
748+
* oci\_email\_email\_return\_path
748749

749750
events
750751

website/docs/r/email_dkim.html.markdown

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ resource "oci_email_dkim" "test_dkim" {
2929
description = var.dkim_description
3030
freeform_tags = {"Department"= "Finance"}
3131
name = var.dkim_name
32+
private_key = var.dkim_private_key
3233
}
3334
```
3435

@@ -44,8 +45,8 @@ The following arguments are supported:
4445

4546
Avoid entering confidential information.
4647

47-
Example: `mydomain-phx-20210228`
48-
48+
Example: `mydomain-phx-20210228`
49+
* `private_key` - (Optional) The DKIM RSA Private Key in Privacy-Enhanced Mail (PEM) format. It is a text-based representation of the private key used for signing email messages.
4950

5051
** IMPORTANT **
5152
Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
@@ -58,11 +59,13 @@ The following attributes are exported:
5859
* `compartment_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment that contains this DKIM.
5960
* `defined_tags` - Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}`
6061
* `description` - The description of the DKIM. Avoid entering confidential information.
61-
* `dns_subdomain_name` - The name of the DNS subdomain that must be provisioned to enable email recipients to verify DKIM signatures. It is usually created with a CNAME record set to the cnameRecordValue
62-
* `email_domain_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the email domain that this DKIM belongs to.
63-
* `freeform_tags` - Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
64-
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DKIM.
65-
* `lifecycle_details` - A message describing the current state in more detail. For example, can be used to provide actionable information for a resource.
62+
* `dns_subdomain_name` - The name of the DNS subdomain that must be provisioned to enable email recipients to verify DKIM signatures. It is usually created with a CNAME record set to the cnameRecordValue.
63+
* `email_domain_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the email domain that this DKIM belongs to.
64+
* `freeform_tags` - Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
65+
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DKIM.
66+
* `is_imported` - Indicates whether the DKIM was imported.
67+
* `key_length` - Length of the RSA key used in the DKIM.
68+
* `lifecycle_details` - A message describing the current state in more detail. For example, can be used to provide actionable information for a resource.
6669
* `name` - The DKIM selector. If the same domain is managed in more than one region, each region must use different selectors.
6770
* `state` - The current state of the DKIM.
6871
* `system_tags` - Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`

website/docs/r/email_email_domain.html.markdown

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ resource "oci_email_email_domain" "test_email_domain" {
3333
The following arguments are supported:
3434

3535
* `compartment_id` - (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment for this email domain.
36-
* `defined_tags` - (Optional) (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}`
36+
* `defined_tags` - (Optional) (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}`
3737
* `description` - (Optional) (Updatable) A string that describes the details about the domain. It does not have to be unique, and you can change it. Avoid entering confidential information.
3838
* `domain_verification_id` - (Optional) (Updatable) Id for Domain in Domain Management (under governance) if DOMAINID verification method used.
3939
* `freeform_tags` - (Optional) (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`

0 commit comments

Comments
 (0)